/*折半查找*/
#include<stdio.h>
int BinSearch(int r[], int n, int k);
main()
{
int A[]={7,14,18,21,23,29,31,35,38};
int k=14;
int s=0;
s=BinSearch(A,9,14);
printf("待查序列是:");
for(int i=0; i<9; i++)
{
printf("%d ",A[i]);
}
printf("\n需要查找的数%d在第%d个",k,s+1);
}
int BinSearch(int r[], int n, int k)
{
int low=0, high=n-1; //设置查找区间
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(k<r[mid])
high=mid-1;
else if(k>r[mid])
low=mid+1;
else return mid; //查找成功,返回元素序号
}
return 0; //查找失败,返回0
}
减治法———折半查找
最新推荐文章于 2022-10-11 09:59:43 发布