折半查找
给出一组有序数列通过折半查找找出用户所需要查找的数
例:有一组有序数列{1,2,3,4,5,6,7,8,9,10},找出序列中的8;查找过程如下:
第一遍:
第二遍:
代码实现
// An highlighted block
#include<stdio.h>
#include<stdlib.h>
int main()
{
const int n = 10;
int a[n] = { 1,2,3,4,5,6,7,8,9,10 };
int low = 0, high = 9;
int mid;
int s;
scanf_s("%d", &s);
while (low <= high)
{
mid = (low + high) / 2;
if (a[mid] < s)
{
low = mid + 1;
}
else if (a[mid] > s)
{
high = mid - 1;
}
else if (a[mid] == s)
{
printf("在序列位置%d:", mid);
break;
}
else
printf("erro");
}
}
运行结果