二分查找法
比如我买了件300以下的衣服,你好奇,想知道到底多少钱,我让你猜,你会怎么猜呢?
答案:你每次会猜中间数,不会从1开始猜。
#include <stdio.h>
int main() //二分查找法(折半查找法)
{
int left = 0;
int mid = 0;
int n = 0;
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int right = sizeof(arr) / sizeof(arr[0]) - 1;
scanf("%d", &n);
while (left <= right)
{
mid = (left + right) / 2;
if (arr[mid] > n)
{
right = mid - 1;
}
else if (arr[mid] < n)
{
left = mid + 1;
}
else
{
printf("找到了,它在数组下标为%d上",mid);
break;
}
}
if (left > right)
{
printf("抱歉,没有找到您要的数字");
}
return 0;
}
标签:二分,arr,right,int,mid,C语言,查找,left
From: https://blog.csdn.net/zhongziqia/article/details/136839589