折半查找
#include <stdio.h>
int bin_search(int arr[],int left,int right,int key)
{
int mid=0;
while(left<=right)
{
//mid=(left+right)/2;
mid=left-(left-right)>>1;
if(arr[mid]<key)
{
left=mid+1;
}
else if(arr[mid]>key)
{
right=mid-1;
}
else
return mid;
}
return -1;
}
int main()
{
int arr[]={0,1,2,3,4,5,6,7,8};
int sz=sizeof(arr)/sizeof(arr[0])-1;
int key=0;
int left=0;
int right=sz;
int ret=0;
scanf("%d",&key);
ret=bin_search(arr,left,right,key);
if(-1==ret)
printf("没有找到\n");
else
printf("下标为%d\n",ret);
system("pause");
return 0;
}
折半查找(二分法)
最新推荐文章于 2021-05-22 19:39:38 发布