二分查找又称折半查找,它是一种效率较高的查找方法。
二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。
/*折半查找*/
int Binary_Search(int a*,int n,int key)
{
int low,high,mid;
low=1; /*定义最底下标为记录首位*/
high=n; /*定义最高下标为记录末位*/
while(low<=high)
{
mid=(low+high)/2; /*折半*/
if(key<a[mid])
high=mid-1;
if(key>a[mid])
low=mid+1;
else
return mid;
}
return 0;
}
算法分析
① 执行过程
设算法的输入实例中有序的关键字序列为
(05,13,19,21,37,56,64,75,80,88,92)