#include <stdio.h>
#include <stdlib.h>
int halfFindArgs(int a[], int n, int f){ //f为要查找的数字
int i;
int left = 0;
int right = n - 1;
int mid;
for (i = 0; i <= n; ++i){ //i表示取到数组每一个元素的下标
mid = (left + right) / 2; //取中间元素
if (f < a[mid]){
right = mid - 1; //如果要找的数比中间元素小,就在该中间元素右边去找
}
else if (f > a[mid]) {
left = mid + 1; //如果要找的数比中间元素小,就在该中间元素左边去找
}
else {
return mid; //找到即返回下标,此时下标值为mid
}
}
return -1; //没找到,返回-1
}
int main(){
int a[10] = {0,2,4,6,8,10,11,13,15,18}; //定义整型数组
printf("%d\n",halfFindArgs(a,10,15)); //函数调用
system("pause");
return 0;
}
在整型有序数组中查找数字(折半查找),找到返回下标,找不到返回-1
猜你喜欢
转载自blog.csdn.net/weixin_44781107/article/details/88971689
今日推荐
周排行