二进制搜索/查找程序(C语言),如下代码所示:

#include

#define MAX 20

// array of items on which linear search will be conducted.

int intArray[MAX] = {1,2,3,4,6,7,9,11,12,14,15,16,17,19,33,34,43,45,55,66};

void printline(int count){

int i;

for(i = 0;i

printf("=");

}

printf("=\n");

}

int find(int data){

int lowerBound = 0;

int upperBound = MAX -1;

int midPoint = -1;

int comparisons = 0;

int index = -1;

while(lowerBound <= upperBound){

printf("Comparison %d\n" , (comparisons +1) ) ;

printf("lowerBound : %d, intArray[%d] = %d\n", lowerBound,lowerBound,intArray[lowerBound]);

printf("upperBound : %d, intArray[%d] = %d\n", upperBound,upperBound,intArray[upperBound]);

comparisons++;

// compute the mid point

midPoint = (lowerBound + upperBound) / 2;

// data found

if(intArray[midPoint] == data){

index = midPoint;

break;

}

else {

// if data is larger

if(intArray[midPoint] < data){

// data is in upper half

lowerBound = midPoint + 1;

}

// data is smaller

else{

// data is in lower half

upperBound = midPoint -1;

}

}

}

printf("Total comparisons made: %d" , comparisons);

return index;

}

void display(){

int i;

printf("[");

// navigate through all items

for(i = 0;i

printf("%d ",intArray[i]);

}

printf("]\n");

}

main(){

printf("Input Array: ");

display();

printline(50);

//find location of 1

int location = find(55);

// if element was found

if(location != -1)

printf("\nElement found at location: %d" ,(location+1));

else

printf("\nElement not found.");

}

如果我们编译并运行上述程序,那么这将产生以下结果 –

Input Array: [1 2 3 4 6 7 9 11 12 14 15 16 17 19 33 34 43 45 55 66 ]

==================================================

Comparison 1

lowerBound : 0, intArray[0] = 1

upperBound : 19, intArray[19] = 66

Comparison 2

lowerBound : 10, intArray[10] = 15

upperBound : 19, intArray[19] = 66

Comparison 3

lowerBound : 15, intArray[15] = 34

upperBound : 19, intArray[19] = 66

Comparison 4

lowerBound : 18, intArray[18] = 55

upperBound : 19, intArray[19] = 66

Total comparisons made: 4

Element found at location: 19

c语言程序二进制代码,二进制搜索/查找程序(C语言)相关推荐

  1. oracle 二进制算法,二进制搜索(查找)

    二进制搜索(二进制查找)是一个非常快的搜索算法.这种搜索算法适用于分裂和治之的原则.对于该算法正确工作数据收集应是有序的形式. 二进制搜索通过比较集合的中部项目来搜索的特定项目.如果出现匹配,那么返回 ...

  2. c语言仿ce内存搜索工 源代码_C语言函数库:动态库和静态库优缺点比较

    函数的重要性 我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护.我们可以把他们制 ...

  3. c语言编程实现二进制计算器,本程序是用纯C语言编的一个基于命令行的四则运算计算器。主要用于计算四则运算表达式的值,同时可以实现四...

    本程序是用纯C语言编的一个基于命令行的四则运算计算器.主要用于计算四则运算表达式的值,同时可以实现四 2016-08-22 0 0 0 暂无评分 其他 1 积分下载 如何获取积分? 本程序是用纯C语言 ...

  4. 帝国cms百度小程序接入自然搜索小程序新资源提交自动同步的操作方法和原理

    如下图的操作地方 准备素材 第一:在小程序里面新建一个/swan-sitemap/index页面,这个页面专门用来为百度小程序提供索引数据 第二:帝国cms后台提供数据汇总.即按不同的栏目,将需要提交 ...

  5. golang语言编译的二进制可执行文件为什么比 C 语言大(转载)

    最近一位朋友问我"为什么同样的hello world 入门程序"为什么golang编译出来的二进制文件,比 C 大,而且大很多.我做了个测试,来分析这个问题.C 语言的hello ...

  6. C语言十进制转换为二进制(附完整源码)

    C语言十进制转换为二进制 C语言十进制转换为二进制完整源码 C语言十进制转换为二进制完整源码 #include <stdio.h> #include <stdlib.h>#de ...

  7. 二叉排序树查找的c语言程序,C语言二叉排序(搜索)树实例

    本文实例为大家分享了C语言二叉排序(搜索)树实例代码,供大家参考,具体内容如下 /**1.实现了递归 非递归插入(创建)二叉排序(搜索)树: 分别对应Insert_BinSNode(TBinSNode ...

  8. java数组的二进制查找_Java程序在长数组上实现二进制搜索

    可以使用java.util.Arrays.binarySearch()方法实现对长数组的二进制搜索.如果所需的长元素在数组中可用,则此方法返回其索引,否则返回(-(插入点)-1),其中插入点是元素将在 ...

  9. c语言 二进制输出_程序员入门C语言,需要掌握的4个基础知识

    C语言是当前所有开发技术中使用较为广泛的一门语言,从它诞生之日起就深受程序员的喜爱.随着C语言的普及,后来的开发语言都或多或少地借鉴或遵循了它的一些模式.另外,C语言是计算机编程领域中使用最早的高级语 ...

最新文章

  1. zip压缩多个文件,解压时不包含目录层级
  2. 两表(多表)关联update的写法 .
  3. 在命令窗口执行java文件时,提示找不到或无法加载主类
  4. Java Collections.emptyList() 方法的使用及注意事项
  5. C#设计模式之7-桥接模式
  6. 使用git将code同时提交github,gitee,coding
  7. html浮动跟随鼠标,jQuery 图片跟随鼠标浮动
  8. 思科路由器与windows建立L2L ipsec×××
  9. 深水划水队项目---七天冲刺之day5
  10. shal+php,学习笔记---PHP中几种加密算法(MD5,shal,base64_encode等)
  11. html5 手机uc浏览器 复制链接,清除UC手机浏览器强制在页面中加入的关键词链接...
  12. 服务器基础知识全解(汇总版)
  13. 微信可以批量清理僵尸粉啦
  14. 知识图谱论文阅读(十三)【2020 arXiv】Attentive Knowledge Graph Embedding for Personalized Recommendation
  15. 华为摄像头采集自动聚焦崩溃
  16. 手把手教你在 PPT中插入 LaTex 数学公式
  17. 新趋势:区块链引领游戏行业发展
  18. 二次元博客系统Halo
  19. 财路网每日原创推送:科普:分片技术
  20. 公众号在哪引流?运营公众号需要怎么做?公众号内容建设

热门文章

  1. “failed to update unity web player”失败的问题:
  2. JSJ-3/AC220V时间继电器
  3. python3简明教程第二版答案_python入门简明教程?求最新的python简明教程,最好是python3的...
  4. chrome控制台如何把vw显示成px_罗技lua怎么做到在脚本控制台显示中文的? - 『悬赏问答区』 - 吾爱破解 - LCG...
  5. 分手了还能做朋友吗?(2012年2月22日)
  6. java并发编程实战(二)
  7. HTTP协议通信相关资料(做笔记)
  8. Java常用命令汇总(笔记)
  9. vue json可视化编辑器 vue-json-editor
  10. MySQL默认 InnoDB 存储引擎 详解