#include <stdio.h>
/*练习3-1改进折半查找*/
int binsearch(int x, int v[], int n);
int main()
{
int v[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
printf("%d\n", binsearch(9, v, 10));
return 0;
}
/*
binsearch: find x in v[0] <= v[1] <= ... <= v[n1]
*/
int binsearch(int x, int v[], int n)
{
int low, high, mid;
low = 0;
high = n-1;
while (low < high) {
mid = (low+high)/2;
if (x <= v[mid])
high = mid;//上限只能在high之内
else
low = mid + 1;//下限在low之后
}
return (x == v[low])?low:-1;
}折半查找
最新推荐文章于 2024-11-11 23:49:41 发布
本文介绍了一种改进的折半查找算法,并通过C语言实现了一个实例。重点在于优化查找过程,提高效率。
1027

被折叠的 条评论
为什么被折叠?



