说一说二分查找法是怎么实现的?
首先找到有序数组的中间值,与目标元素比较,1.中间值<目标元素,在数组右边继续操作2.中间值>目标元素,在数组左边继续操作
3.中间值=目标元素找到。
#include<iostream>
using namespace std;
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int n;
printf("请输入你要查找的数:");
cin>>n;
int len = sizeof(arr)/sizeof(arr[0]);
int low = 0;
int high=len-1;
int mid=(low+high)/2;
while (low <= high)
{
mid = (low + high) / 2;
if (arr[mid] == n)
{
printf("找到了,下标是:%d\n", mid);
break;
}
else if (arr[mid] > n)
{
high = mid -1;
}
else
{
low = mid + 1;
}
}
if (low > high)
printf("没找到");
return 0;
}