//折半查找又称为二分查找,仅适用于事先已经排好序的顺序表。其查找的基本思想是:首先将给定值key与表中中间位置的关键字进行比较,若
//相等,则查找成功,返回该元素的存储位置;若不等,则所需查找的元素只能在中间数据以外的前半部分或后半部分中。然后在缩小的范围内
//继续进行同样的查找,如此重复直到找到为止。算法如下:
#include<iostream>
using namespace std;
int Binary_search(int data[],int len,int key)
{
int low=0;
int high=len-1;
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(data[mid]==key)
return mid;
else if(data[mid]>key)
high=mid-1;
else
low=mid+1;
}
return -1;
}
void main()
{
int data[]={0,1,2,3,4,5,6,7,8,9};
int len=sizeof(data)/sizeof(int);
cout<<Binary_search(data,len,6)<<endl;
}
折半查找
最新推荐文章于 2022-09-13 16:39:59 发布