#include <stdio.h>//利用顺序查找,在无序的数组arr中,查找key,找到返回下标,失败返回-1
int Search(int *arr,int len,int key)
{for(int i=0;i<len;i++){if(arr[i] == key){return i;}}return -1;
}//利用折半查找,在有序(升序)的数组arr中,查找key,找到返回下标,失败返回-1
int BinSearch1(int *arr,int len,int key)//错误,存在bug,存在low=high=key
{int low = 0;//起始下标int high = len-1;//结尾下标int mid;//中间位置下标while(low < high){mid = (low+high)/2;if(arr[mid] == key){return mid;}else if(arr[mid] < key)//在右边{low = mid;//可能出现死循环 }else{high = mid;//可能出现死循环}}return -1;
}//错误运行,输出结果为;-1.-1.0.1.2.3.4.5.6.7.8.9.10 int BinSearch(int *arr,int len,int key)//正确的写法
{int low = 0;//起始下标int high = len-1;//结尾下标int mid;//中间位置下标while(low <=high){mid = (low+high)/2;if(arr[mid] == key){return mid;}else if(arr[mid] < key)//在右边{low = mid+1;}else{high = mid-1;}}return -1;
} int main()
{int arr[] = {1,2,3,4,5,6,7,8,9,10,11,12};/*for(int i=-1;i<15;i++){printf("%d\n",BinSearch1(arr,sizeof(arr)/sizeof(arr[0]),i));}*/for(int i=-1;i<15;i++){printf("%d\n",BinSearch(arr,sizeof(arr)/sizeof(arr[0]),i));}return 0;
}

29-折半查找法的使用相关推荐

  1. java学习笔记之折半查找法(二分法)

    2019独角兽企业重金招聘Python工程师标准>>> package Xhe.com; //折半查找法(二分法) public class halfSearch {     pub ...

  2. 数据结构--折半查找法 详解

      1. 折半查找法定义          折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, ...

  3. 递归应用:折半查找法

    折半查找法介绍 在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search).对数搜索(英语:logarithmic search),是 ...

  4. 二分法实战教学快速入门(折半查找法)

    //二分查找法(折半查找法) //主要思路:将一个顺序已经排好的数组如从小到大, //分别取第一位和末位为low和high,取mid为两者位置数的平均值 //输入key,每次在循环中判断key与mid ...

  5. 用折半查找法查找某一字符在字符串中的位置

    一.题目描述 从键盘输入一个字符,用折半查找法找出该字符在已排序的字符串str中的位置.若该字符不在str中,则打印输出**.(更好的阅读体验,请移步我的个人博客) 二.分析解答 此题主要考察字符串的 ...

  6. C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。

    /*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...

  7. 一维数组——折半查找法

    [问题描述] 编写程序,利用折半查找法从一个升序排列的数列中查找某数是否存在,如果存在则输出该数的下标,否则输出no,输出查找过程中和中间元素比较的次数. [输入形式] 输入分3行:第一行为n的值,代 ...

  8. 每日C语言(The 7th day)——折半查找法

    太久没有更新了,偷懒了,趁着开学前多发几篇(偷笑) 老样子先上题目 T(题目):假设有若干个由大到小排序的数已经顺序存放在一个数组中,现输入一个数x,请用折半查找法找出该数是数组中哪个元素的值.找到则 ...

  9. 折半查找法(二分搜索法)

    学习C语言的时候,折半查找法应该是很多人绕不开的一个简单算法.作为一名C语言的初学者,第一次看这个算法的时候着实是有些头疼.不过仔细读读发现其实并没有想象中那么难. 折半搜索,也称二分搜索是一种在有序 ...

  10. 1.2折半查找法的使用

    2. 折半查找法的使用 [问题描述]给定一个按值有序(升序)的N元整数数组A,采用折半查找法查找关键值k的位置,并给出查找的过程 [输入形式] 第一行:N 第二行:A[0], A[1], ... , ...

最新文章

  1. 图解分析一个dNet进销存软件
  2. ellipsis省略号表示多余内容
  3. Java设计模式之策略设计模式
  4. 6. Nginx + PHP + FastGCI安装
  5. Windows桌面切换VC代码
  6. Python笔记:Python中的main函数
  7. html判断隐藏显示,javascript如何判断元素是否可见?
  8. 矩孔菲涅尔衍射 matlab,圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学.docx
  9. java4.25生成车牌号_泸牌16年涨882倍 超25万人拍一张车牌为哪般?
  10. Vue前端项目-系统监控-数据监控
  11. 解决RequestMapping写在类上页面跳转失败
  12. 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字
  13. android录音mediaRecord\AudioRecord\openSL\PCM tinyalsa总结和优缺点
  14. Android7 WIFI系统 PNO机制流程详解和隐藏BUG修改
  15. java宠物医院,基于SSM框架的JAVA宠物医院管理信息系统,源码分享
  16. redis7 Cluster模式 集群
  17. 使用降噪自编码器【DAE】对车流量数据进行降维
  18. python_爬虫基础学习
  19. java三角形海伦公式_java 海伦公式编程
  20. 23王道数据结构代码题全解(三)

热门文章

  1. scrolltop一直为0_「超级玛丽max2.0」「达尔文3号」「超级玛丽max3.0」,三军之战最全解析...
  2. ShaderJoy —— 烟花爆炸特效【GLSL】
  3. c语言预处理命令math,C语言之预处理命令
  4. 理解红黑树及代码实现
  5. linux 下glog的安装
  6. python 文件夹拷贝
  7. 大数据与机器学习-大数据预测
  8. 红米Android降级,红米Note 5(安卓9.0 不要降级刷低版本)纯净ROOT线刷包分享,一键救砖教程,轻松刷回官方系统,流畅如初!...
  9. ubuntu禁用笔记本触摸板
  10. 吉尔伯特定律(转载)