题目要求:
找到数组 arr 中 7 对应的下标
解决思路:
折半查找法/二分查找法
实现代码:
```C++
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; //定义数组
int sz = sizeof(arr) / sizeof(arr[0]); //获取数组中的元素个数
int sch_num = 7; // 要查找的数字
int left = 0; //左边的起始索引值
int right = sz - 1;//右边的起始索引值
while (arr[index] <= sch_num)
{
int mid_index = (left + right) / 2; //索引值的中位数
if (arr[mid_index] < sch_num) //当索引值中位数对应的值小于要查找的数字时,右边索引值不变,左边的索引值+1
{
left = mid_index + 1;
}
else if (arr[mid_index] > sch_num) //当索引值中位数对应的值大于要查找的数字时,左边索引值不变,右边的索引值+1
{
right = mid_index - 1;
}
else
{
printf("找到了,%d对应的下标为:%d\n", sch_num, mid_index);
}
}
if ( left > right)
{
printf("找不到!");
}
return 0;
}