在一组有序的数列中,寻找一个指定的数字所在的下标
#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;
}

本文介绍了一种在有序数组中使用折半查找算法来定位特定数值的方法。通过一个具体的示例,展示了如何确定目标数值在数组中的位置或者确认其不存在于数组中。此算法能够有效地减少搜索范围,提高查找效率。
1万+

被折叠的 条评论
为什么被折叠?



