论坛首页 编程语言技术论坛

折半搜索

浏览 4595 次
锁定老帖子 主题:折半搜索
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-28  
C
  折半搜索的思想很简单, 就是假设有一个集合S={a1, a2, a3, a4...an}, 其中满足(a[i-1] < a[i]).. 折半的就先和中间的比较, 如果比中间值的大, 如果t在集合里面的话, 那么就一定只会在后半段了, 不会在前半段.. 以此类推吧``
int search(int *a, int size, int t)
{
	int low, high, mid;
	low = 0;
	high = size - 1;
	while(low <= high){
		mid = (low + high) / 2;
		if(t == a[mid]){
			return mid;
		}
		if(a[mid] > t){
			high = mid - 1;
		}else{
			low = mid + 1;
		}
	}
	return -1;
}
   发表时间:2010-03-30  
没找到就挂了
0 请登录后投票
   发表时间:2010-03-30  
fffvvvzz 写道
没找到就挂了

能够具体给出一个例子吗`?
  我这里调试了一下,, 没发现什么异常`
0 请登录后投票
   发表时间:2010-03-31  
11-15
0 请登录后投票
   发表时间:2010-03-31  
fffvvvzz 写道
11-15


11 12 13 14 15 这五个?
我这里都可以啊`
0 请登录后投票
   发表时间:2010-04-12  
问下楼主:你是拿了别人的注册号在这里害别人,还是没事在这里装-B啊!
0 请登录后投票
   发表时间:2010-04-14   最后修改:2010-04-14
没看代码,看描述难道是2分法?

是的话不一定是a[i-1] < a[i],有序就好阿
0 请登录后投票
   发表时间:2010-05-05  
提烟而过 写道
问下楼主:你是拿了别人的注册号在这里害别人,还是没事在这里装-B啊!

不要这么伤害别人
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics