一.举例

二.算法时间复杂度
假设一共有n个元素
第一次折半元素个数变为n/2;
第二次折半元素个数变为n/4;
第三次折半元素个数变为n/8;
。。。。。
第k次折半元素个数变为n/2^k;
。。。。。
假设k次找到,即为n/2^k=1;
k=log2(n);
三.函数实现

#define _CRT_SECURE_NO_WARNINGS   1
#include<stdio.h>
int binsearch(int a[], int x, int n)
{int high = n - 1;int low = 0;while (low <= high){int mid = (high + low) / 2;if (a[mid] == x){return mid;}else if (a[mid] < x){low = mid + 1;}else{high = mid - 1;}}if (low > high)printf("抱歉我没有找到\n");return -1;   //下标为-1表示没有找到
}
int main()
{int a[10] = { 1,2,3,4,5,6,7,8,9,10 };int x = 0;int n = 0;printf("请输入要在数组中查找的数:\n");scanf("%d", &x);n = sizeof(a) / sizeof(a[0]);int index = 0;index = binsearch(a, x, n);printf("下标为:%d\n", index);return 0;
}

四.语句循环流程图

折半查找法(二分查找法)相关推荐

  1. 递归法实现折半查找(二分查找)

    题目 递归法实现折半查找(二分查找) 分析 设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标 查询数字number与mid进行比较,有四种情况: 1 ...

  2. 线性查找法java代码_Java线性查找和二分查找

    Java线性查找和二分查找. 一 线性查找 定义:在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程. 线性查找又称为顺序查找.如果查找池是某种类型的一个表,比如一个数组,简 ...

  3. Java有序表查找:折半查找、二分查找、差值查找和斐波那契查找

    Java有序表查找:折半查找.二分查找.差值查找和斐波那契查找     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51 ...

  4. 折半查找(二分查找)

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

  5. 让你秒懂的折半查找(二分查找)

    折半查找又称二分查找,只能适用于有序的顺序表. //折半查找 int Bsearch(int R[],int low,int high,int key){int min;while(low<=h ...

  6. 折半查找(二分查找)的理解

    目录 折半查找的算法思想 查找过程演示 折半查找的判定树 代码实现 折半查找的算法思想 折半查找又称二分查找,仅适用于有序的顺序表 首先将给定值key与表中中间位置元素的关键字比较, 若相等,则返回该 ...

  7. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例

    介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...

  8. Java数据结构与算法 线性查找和二分查找

    查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...

  9. 顺序查找与二分查找算法

    顺序查找算法 顺序查找是非常简单常用的查找算法,基本思路:从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回-1.该算 ...

  10. 【Java数据结构与算法】第九章 顺序查找、二分查找、插值查找和斐波那契查找

    第九章 顺序查找.二分查找.插值查找和斐波那契查找 文章目录 第九章 顺序查找.二分查找.插值查找和斐波那契查找 一.顺序查找 1.基本介绍 2.代码实现 二.二分查找 1.基本介绍 2.代码实现 三 ...

最新文章

  1. Stream、WshShell、WshUrlShortcut对象及Shell.Application的参数与使用
  2. ISA Server 2006 安全保障指南
  3. 全网最详细的Xshell或SecureCRT下spark-shell里出现无法退格或者删除的问题现象的解决办法(图文详解)...
  4. 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了
  5. matlab-画个拱桥和倒影?
  6. 飞天大数据平台助力轻松筹数字化运营
  7. 命令点无效怎么处理_怎么更好处理闲置包包,买包卖包都要记住这5点
  8. ClassLoader简介
  9. word2013标题编号变成黑框
  10. 从ipa文件中导出图片
  11. NOIP2005复赛 普及组 第1题 陶陶摘苹果
  12. Android dialog中显示一个超链接
  13. GStreamer 编写一个简单的MP3播放器
  14. python3.3使用tkinter实现猜数字游戏代码
  15. ubuntu 16.04 重装失败:进入grub出不来
  16. 巴西发生矿坝决堤事故 外媒:90名受困者已救出
  17. 寒武纪裁员:软件研发部门和应届生为重灾区
  18. xmanager显示linux7桌面,Xmanager 5远程连接CentOS7图形化界面
  19. 报名进行时!邀您一起海外社媒会话跨境直播,实地探访MCN机构
  20. 拿到软考高级证书就是高级职称了吗?

热门文章

  1. sql server常用性能计数器
  2. 【BZOJ1797】[AHOI2009]最小割(网络流)
  3. java-number
  4. 洛谷 P3391 【模板】文艺平衡树
  5. asp.net表单提交方法:GET\POST介绍
  6. 基于并查集的kruskal算法
  7. express路由管理的几种自动化方法分享-js教程-PHP中文网
  8. 算法 --- 删除数组中重复项
  9. BZOJ 1005: [HNOI2008]明明的烦恼
  10. Linux磁盘的划分