#include <stdio.h>
//二分查找
int search(int key,int a[], int len ){
int ret = -1; //-1表示没找到
int left = 0;
int right = len - 1;
int mid = (left + right) / 2;
while(left <= right){
if( key == a[mid] ){
ret = mid;
break;
}else if( key < a[mid] ){
right = mid - 1;
}else{
left = mid + 1;
}
mid = (left + right) / 2;
}
return ret;
}
int main()
{
int a[] = {2,4,6,8,9,12,25,30,34,89,100};
int want = 100;
int d = search(want,a,sizeof(a)/sizeof(a[0])) ;
if( d > -1 ){
printf("%d在数组a中的位置为%d",want,d);
}else{
printf("没找到");
}
return 0;
}
C实现二分查找
最新推荐文章于 2024-08-02 00:40:41 发布