买了一本算法的书看不懂那位大神帮帮忙
内容如下
二分搜索
输入:n个元素的数组A[1....n]和元素 x
输出:如果x=A[j],1≤j≤n,则输出j,否则输出0
1.j<-1 //这里是不是将j初始化为1
2.while(j<n) and(x≠A[j]) //这里
下面看的不太懂
3.j<-j+1
4.end while
5.if x=A[j] then return j else return 0
[解决办法]
这哪里是二分搜索,典型的顺序查找嘛
二分搜索的前提是数组是有序的,比如递增
假设数组A[1....n]是递增的,那二分搜索的思想如下
1. min<-1, max<-(n+1)
2. j<-(min+max)/2
3. if(A[j] == x)
return j;
else if(A[j] < x)
min<-j+1;
else
max<-j-1;
4. if(min <= max)
goto 2;
else
return 0;