如何使用c语言编写二分查找算法

折半查找又称为二分查找法,这种查找方法有两个条件限制:
1:必须采用顺序存储结构,对于链表不适合:
2:必须按照关键字大小有序排列;
具体的算法思想:
对于数组进行比较的时候,比较数组大小的中间值,当发现数据大于该中心数据,就在后面的一个区间进行比较,
如果小于该中心数据,就在前面一个区间进行比较,在新的区间里,再次使用之前的大小中间比较法,比较,直到最后找到该数据为止。

操作方法

  • 01

    写一个二分法的函数名,包含参数。 int FindBySrch(int * ListData,int ListLength,int KeyData);

  • 02

    写一个循环,在循环中应用折半查找。数组中变换二次区间方法来实现二分查找法: 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; }

  • 03

    对编好的程序进行测试,得出测试结果: #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; }

    数据分析:

    • 01

      二分法的优点是比较次数少,查找速度快,平均性能好。 缺点是要求查表为顺序表,插入、删除困难, 我们这里来算一下,它的平均查找长度是多少: 估计长度为n:它的平均查找长度为:log2(n+1)-1 :

    (0)

    相关推荐

    • sublime软件如何使用python语言编写程序

      sublime软件是我们在电脑中常用的一种编程软件,接下来小编就教大家怎样在这个软件中使用python语言编写程序.具体如下:1. 首先我们需要在电脑中安装sublime软件,下载完成安装包之后,点击 ...

    • Java语言编写水仙花数等

      利用Java语言编写水仙花数.素数也叫质数.学生成绩.加法计算器.求平方. 操作方法 01 Java编写语言:水仙花数 (1^3 + 5^3 + 3^3 = 153) 1的立方+5的立方+3的立方=1 ...

    • Java语言编写三角形面积等

      利用Java语言编写三角形面积.等腰三角形.判断两个数的大小.两个数之间按从大到小输出.三个数从小到大顺序输出. 操作方法 01 Java语言编写: 任意输入三角形的三边,判断是否为三角形并且求三角形 ...

    • 如何使用C语言编写二进制转换为十进制的程序

      在有次上课的时候,老师布置了用C语言编写二进制转换为十进制的程序,我今天将我的心得与成果分享给大家. 操作方法 01 为了完成进制的转换,我在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为 ...

    • 如何用JAVA语言编写一个九九乘法表

      大家对于九九乘法表都不陌生,那么如何运用JAVA语言编写一个九九乘法表呢?下面小编教大家学习一下. 操作方法 01 首先在Sublime Text中新建一个Java文件,新建以后会默认添加如下的mai ...

    • 易语言编写盗号源码

      现在有人学习易语言想盗号,就是不知道易语言盗号源码是什么.怎么发到指定邮箱.今天我就来教大家怎么编写易语言盗号源码. 操作方法 01 打开易语言,新建一个Windows窗口程序. 02 然后呢,制作一 ...

    • 怎么用易语言编写恶搞软件——开机炸弹

      如果突然心血来潮想恶搞自己的好基友,什么办法好呢,哈哈,用易语言就能编写出这类的软件,来看看吧.装在他电脑上哦. 操作方法 01 打开易语言,选择新建. 02 我们新建一个windows窗口程序. 0 ...

    • 如何用易语言编写注册软件?

      易语言大家都很熟悉了,有小伙伴问我:我的软件挺好的,怎么创造一个用激活码激活程序呢?在此,该大家演示一下! 注册软件 01 打开易语言, 界面就是这个样子啦! 02 开始进入代码区: .版本 2.支持 ...

    • C语言编写Windows下的实用程序:[3]窗口

      前面两篇,我们只是通过Windows系统的MessageBox函数,简单做出了一个提示对话框,这对我编写实用的窗口程序是远远不够的,这篇开始,我们来介绍下怎样用C语言开发Windows下的窗口程序. ...