2015-11-07 06:30:02

阅读( 276 )

#include

int binary_search(int array[], int value, int size)

{

int found = 0;

int high = size, low = 0, mid;

mid = (high + low) / 2;

printf("\n\nLooking for %d\n", value);

while ((! found) && (high >= low))

{

printf("Low %d Mid %d High %d\n", low, mid, high);

if (value == array[mid])

found = 1;

else if (value < array[mid])

high = mid - 1;

else

low = mid + 1;

mid = (high + low) / 2;

}

return((found) ? mid: -1);

}

int main(void)

{

int array[100], i;

for (i = 0; i < 100; i++)

array[i] = i;

printf("Result of search %d\n", binary_search(array, 33, 100));

printf("Result of search %d\n", binary_search(array, 75, 100));

printf("Result of search %d\n", binary_search(array, 1, 100));

printf("Result of search %d\n", binary_search(array, 1001, 100));

return 1;

}

输出结果:

Looking for 33

Low 0 Mid 50 High 100

Low 0 Mid 24 High 49

Low 25 Mid 37 High 49

Low 25 Mid 30 High 36

Low 31 Mid 33 High 36

Result of search 33

Looking for 75

Low 0 Mid 50 High 100

Low 51 Mid 75 High 100

Result of search 75

Looking for 1

Low 0 Mid 50 High 100

Low 0 Mid 24 High 49

Low 0 Mid 11 High 23

Low 0 Mid 5 High 10

Low 0 Mid 2 High 4

Low 0 Mid 0 High 1

Low 1 Mid 1 High 1

Result of search 1

Looking for 1001

Low 0 Mid 50 High 100

Low 51 Mid 75 High 100

Low 76 Mid 88 High 100

Low 89 Mid 94 High 100

Low 95 Mid 97 High 100

Low 98 Mid 99 High 100

Low 100 Mid 100 High 100

Result of search -1

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

c语言折半查找法程序,C语言基础:二分查找法演示代码相关推荐

  1. c语言折半排序的程序,C语言实现九大排序算法的实例代码

    直接插入排序 将数组分为两个部分,一个是有序部分,一个是无序部分.从无序部分中依次取出元素插入到有序部分中.过程就是遍历有序部分,实现起来比较简单. #include void insertion_s ...

  2. c语言折半查找递归程序,C语言数据结构中二分查找递归非递归实现并分析

    C语言数据结构中二分查找递归非递归实现并分析 前言: 二分查找在有序数列的查找过程中算法复杂度低,并且效率很高.因此较为受我们追捧.其实二分查找算法,是一个很经典的算法.但是呢,又容易写错.因为总是考 ...

  3. c语言课程设计加密程序,C语言课程设计文件加密解密.doc

    C语言课程设计文件加密解密 C语言程序设计 课程设计 学 院 计算机工程 班 级 计算1313 姓 名 学 号 201321121089 成 绩 指导老师 2014年6月26日 计算1313班C语言程 ...

  4. python是语言还是软件_程序开发语言之Python:是追逐还是坚守?

    Python作为计算机程序设计语言的其中一种,最初是被设计用于编写自动化脚本(shell),随着版本的不断更新.语言新功能的添加和机器学习的兴起,Python从2017年开始受到广泛关注. Pytho ...

  5. c语言经典解决实际程序,C语言经典教程1讲.ppt

    <C语言经典教程1讲.ppt>由会员分享,可在线阅读,更多相关<C语言经典教程1讲.ppt(48页珍藏版)>请在人人文库网上搜索. 1.C程序设计,主讲人:任祖华,2,本课程学 ...

  6. c语言怎么返回前一个程序,c语言return返回到哪

    c语言return返回到哪 c语言return,返回给了上一级,比如一个递归程序,从第三层返回到第二层:又比如一个普通的子程序,那就返回到主程序中去. 主程序中return返回给了操作系统. 比如下面 ...

  7. 用c语言做一个五子棋程序,C语言制作简单五子棋游戏

    原标题:C语言制作简单五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是不 ...

  8. java 二分查找_计算机入门必备算法——二分查找法

    1.引言 笔者对于计算机的研究一直停滞不前,近期想对一些算法进行复习和进一步的研究,每天都会更新一个新的算法,算法有难有易,层层递进.不希望能学的有多么高深,只希望在一些最基本的算法上有编码的思路,或 ...

  9. 一万个数查找两个重复数,快速二分查找法 O(logN)(转)

    题目:1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次.每个数组元素只能访问一次,设计一个算法,将它找出来:不用辅助存储空间,能否设计一个算法实现? 一.有序情况 ...

  10. 二分查找法。Java泛型设计二分查找法。

    前言基础: 1.只能针对有序的数组进行查找. 2.时间复杂度为O(logn). 3.使用前可以先排序,然后再查找,广泛应用于当一大组数据需要频繁查找,于是我们先将其进行排序,然后再通过二分查找进行查找 ...

最新文章

  1. 【JavaScript总结】JavaScript语法基础:JS高级语法
  2. 模拟退火 HDU - 2899 Strange Function
  3. htc one m7刷Linux,HTC one m7官方刷机详细操作教程
  4. matlab散点拟合系数,matlab离散型数据拟合方程,求系数,哪个大神能说说方法
  5. 强烈推荐 MicroSoft Office OneNote
  6. Vue调试神器vue-devtools - 插件下载安装
  7. 贪心算法——洛谷(P1106)删数问题
  8. STM32工作笔记005---STM32芯片解读
  9. 大数据架构师工作内容有哪些?
  10. [转载] numpy.reshape用法(自用)
  11. python海龟图画龙珠_DeepOps的Python小笔记-天池龙珠计划-Python训练营-Task 02:DAY5
  12. ElasticSearch学习(四):可视化管理之Kibana
  13. linux面试题线程与进程,​一道面试题:说说进程和线程的区别
  14. opencv 把3通道图像转成单通道_【3】OpenCV图像处理模块(4)图像腐蚀与膨胀
  15. 值得收藏的一些Java实战项目分享
  16. excel计算机求和函数,多条件求和、多条件计数、多条件查找……多了去了!
  17. 中信证券java面试_中信证券面试问题分享
  18. 后台登录管理员数据表创建
  19. 存储容量与地址空间的计算
  20. SpringBoot版本GA,SNAPSHOT,PRE的的含义

热门文章

  1. web服务器tornada,flask问题
  2. python 直接if判断和is not None的区别
  3. Python第三方包的egg info 是什么东西
  4. viterbi维特比算法和隐马尔可夫模型(HMM)
  5. LeetCode简单题之查找共用字符
  6. 最新Spring整合MyBatis详解教程
  7. CUDA 7流简化并发
  8. TensorRT-优化-原理
  9. 自动驾驶感知系统盘点
  10. 2021年大数据ELK(十一):Elasticsearch架构原理