在一组有序的数列中,寻找一个指定的数字所在的下标
#include <stdio.h>
int main()
{
/*在一组有序的数列中,寻找一个指定的数字所在的下标*/
int d[] = {1,5,8,12,23,44,56,78,99,200};
int find=12;
//折半查找
int len = sizeof(d) / sizeof(d[0]);
int low = 0, high = len-1;
int mid;
do
{
mid = (low + high) / 2;
if (d[mid] == find)
{
printf("找到了,在%d\n", mid);
break;
}
else if (d[mid] > find)
{
high = mid - 1;
}
else
{
low = mid + 1;
}
} while (low <= high);
if (!(low <= high))
{
printf("没找到,最后的停留点:%d\n", -mid);
}
return 0;
}