现在的位置: 首页 > 综合 > 正文

查找算法–二分查找

2013年10月23日 ⁄ 综合 ⁄ 共 485字 ⁄ 字号 评论关闭

二分查找:又称折半查找,是对有序的顺序表进行的高效查找方法。

算法思想:首先选择表中间的一个记录,比较其关键字的值,若要找的记录的关键字值大,则再取表的后半部的中间记录进行比较;否则取前半部的中间记录进行较;

                    如此反复,直到找到为止。仅适用于有序表;只适用顺序存储结构的表,要求表中元素基本不变,在需插入 或删除运算时,影响检索效率;   

平均查找长度最小:ASL={(n+)/n }*log2(n+1)-1        

时间复杂度:o(log2n)          

c++ 算法实现:

int binSearch(const int *Array,int start,int end,int key)
{
	int left,right;
	int mid;
	left=start;
	right=end;
	while (left<=right) 
	{ 
		mid=(left+right)/2;
	
	if (key<Array[mid])
	{
		right=mid-1;
	}
	else if(key>Array[mid])
	{
		left=mid+1;
	}
	else
		return mid;
	}
	return -1;
}

 

 

抱歉!评论已关闭.