前提:数据先排序。#include using namespace std;int BinarySearch(int List[], const int size, const int value);int main(){ int a[] = {1,2,3,4,5,6,7,8,11,23,43...
分类:
其他好文 时间:
2015-03-10 13:45:42
阅读次数:
132
查找方式:顺序查找和折半查找(二分查找);如果数据已排序,可使用折半查找和顺序查找;如果数据未排序,使用顺序查找。 顺序查找速度慢。#include using namespace std;int SequentialSearch(int List[], const int size, con...
分类:
其他好文 时间:
2015-03-10 11:52:36
阅读次数:
128
14.实现strStr():搜索一个字符串在另一个字符串中的第一次出现的位置
例:
#include
#include
int main ()
{
char str[] ="This is a simple string";
char * pch;
pch = strstr (str,"simple");
cout<<(*pch)<<endl;
return 0;
}...
分类:
编程语言 时间:
2015-03-10 10:26:24
阅读次数:
186
最近开学了,又复习了下数据结构与算法,我在MOOC上学的。这次是清华oj平台上的一题。题目:范围查询(Range) 主要数据量略大...
分类:
其他好文 时间:
2015-03-10 01:30:51
阅读次数:
170
#include
#include
#include
#include
using namespace std;
int a[1000100];
int search(int left,int right,int v)
{
int mid=(left+right)/2;
if(left>right) return -1;
if(a[mid]==v) return mid;
...
分类:
其他好文 时间:
2015-03-09 16:13:59
阅读次数:
102
一.算法思想 1.二分插入排序的基本思想和插入排序一致;都是将某个元素插入到已经有序的序列的正确的位置; 2.和直接插入排序的最大区别是,元素A[i]的位置的方法不一样;直接插入排序是从A[i-1]往前一个个比较,从而找到正确的位置;而二分插入排序,利用前i-1个元素已经是有序的特点结合二分查找.....
分类:
编程语言 时间:
2015-03-09 15:39:41
阅读次数:
168
二分查找伪代码:迭代Binary-Search(A,low,high,x)while(low<=high)
mid=(low+high)/2
if(A[mid]==x)
returnmid
elseif(A[mid]>x)
high=mid-1
else
low=mid+1
returnnull
二分查找伪代码:递归Binary-Search(A,low,high,x)
if(low>high)
returnnull
m..
分类:
编程语言 时间:
2015-03-08 17:24:45
阅读次数:
232
时间限制:10000ms单点时限:1000ms内存限制:256MB描述Nettle最近在玩《艦これ》,因此Nettle收集了很多很多的船(这里我们假设Nettle氪了很多金,开了无数个船位)。去除掉重复的船之后,还剩下N(1≤N≤1,000,000)种不同的船。每一艘船有一个稀有值,任意两艘船的稀有...
分类:
其他好文 时间:
2015-03-08 17:00:50
阅读次数:
137
这道题也是道二分的题,主要有几个注意点:1、两个数组的合并的问题,可以将a数组和b数组合并,这样可以降低时间复杂度。2、二分查找的left和right的变化问题。之前这里一直wa。。。一定要是left=mid+1,right=mid-1;可以测试一下x=3和x=9以及x=10这个特殊的值。剩下的就是...
分类:
其他好文 时间:
2015-03-08 15:36:03
阅读次数:
135