如何使用c语言编写二分查找算法
1、写一个二分法的函数名,包含参数。
int FindBySrch(int * ListData,int ListLength,int KeyData);
2、写一个循环,在循环中应用折半查找。数组中变换二次区间方法来实现二分查找法:
int FindBySrch(int * ListData,int ListLength,int KeyData)
{
int low = 1;
int hight = ListLength;
while(low <= hight)
{
mid = (low+hight)/2;
if(KeyData > ListData[mid-1])
low = mid;
else if(KeyData < ListData[mid-1])
hight = mid;
else
return mid;
}
return 0;
}
3、对编好的程序进行测试,得出测试结果:
#include <stdio.h>
int main()
{
int TestData[5] = {34,35,36,89,96};
int retData = FindBySrch(TestData,5,89);
printf("retData:%d\n",retData);
return 0;
}
1、二分法的优点是比较次数少,查找速度快,平均性能好。
缺点是要求查表为顺序表,插入、删除困难,
我们这里来算一下,它的平均查找长度是多少:
估计长度为n:它的平均查找长度为:log2(n+1)-1 :
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。