#include<iostream>
using namespace std;//利用二分法查找某个数字在数组中的下标
int search(int arr[], int k, int sz)
{
int left = 0;
int light = sz - 1;
while (left <= light)//循环条件左下标必须小于或等于才能进入循环。
{
int mid = (left + light) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
light = mid - 1;
}
else
{
return mid;//查找的值与数组值相等,返回数组下标,
}
}
return -1;
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 0;
cout<<"请输入想查找的整数:";
cin>>k;
int sz = sizeof(arr) / sizeof(arr[0]);
int ret = search(arr, k, sz);//创建ret 变量来接收查找返回值()里的元素代表要传的实参数。
if (-1 == ret)
{
cout << "找不到";
}
else
{
cout<<"找到了,下标为:"<< ret;
}
return 0;
}
【C++】二分法查找某个数字在数组中的下标
最新推荐文章于 2023-05-31 20:15:34 发布