首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

买了一本算法的书看不懂那位大神帮帮忙,该如何解决

2012-03-19 
买了一本算法的书看不懂那位大神帮帮忙内容如下二分搜索输入:n个元素的数组A[1....n]和元素 x输出:如果xA

买了一本算法的书看不懂那位大神帮帮忙
内容如下
二分搜索
输入: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;

热点排行