首页 > 其他 > 详细

二分查找、折半查找

时间:2014-03-07 05:00:53      阅读:437      评论:0      收藏:0      [点我收藏+]

折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果x<a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右半部继续搜索x。算法时间复杂度为O(log n)。

int b_find(const int nums[], const int key,const int n){
	int b = 0,e = n-1;
	int mid;
	if(nums == NULL || n<=0)
		return-1;
	while (b <= e)
	{
		mid = b + (e - b)/2;
		if(nums[mid] == key)
			return mid;
		else if (nums[mid] > key)
			e = mid-1;
		else if(nums[mid] < key)
			b = mid+1;
	}
	return -1;
}


二分查找、折半查找,布布扣,bubuko.com

二分查找、折半查找

原文:http://blog.csdn.net/h_wlyfw/article/details/20631889

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!