二分查找算法,也称折半搜索算法或者对数搜索算法
适用条件:有序的数组.
这种算法每次比较都使搜索范围缩小一半.
#include <stdio.h>
int main()
{
int arr[] = { 1, 3, 5, 6, 8, 9, 10, 18 };//需要查找的数组
int n = 8;//需要查找的数
int sz = sizeof(arr) / sizeof(arr[0]);//数组中的元素个数
int left = 0;//左下标
int right = sz - 1;
int mid = (left + right) / 2;//这里需要注意的是,要是mid计算是带有小数的数字最后转化为
while(left <= right)//进行二分查找需要的条件 //整型,即小数后面的值全部省略
{
if (arr[mid] < n)
{
left = mid + 1;
}
if (arr[mid] > n)
{
right = right - 1;
}
else
{
printf("找到这个数了,下标是%d\n", mid);
break;
}
}
if (left >= right)
printf("找不到这个数\n");
return 0;
}