折半查找法(二分查找法)
一.举例
二.算法时间复杂度
假设一共有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;
}
四.语句循环流程图
折半查找法(二分查找法)相关推荐
- 递归法实现折半查找(二分查找)
题目 递归法实现折半查找(二分查找) 分析 设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标 查询数字number与mid进行比较,有四种情况: 1 ...
- 线性查找法java代码_Java线性查找和二分查找
Java线性查找和二分查找. 一 线性查找 定义:在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程. 线性查找又称为顺序查找.如果查找池是某种类型的一个表,比如一个数组,简 ...
- Java有序表查找:折半查找、二分查找、差值查找和斐波那契查找
Java有序表查找:折半查找.二分查找.差值查找和斐波那契查找 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51 ...
- 折半查找(二分查找)
折半查找(二分查找) 1.折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, 则搜索过程结束: ...
- 让你秒懂的折半查找(二分查找)
折半查找又称二分查找,只能适用于有序的顺序表. //折半查找 int Bsearch(int R[],int low,int high,int key){int min;while(low<=h ...
- 折半查找(二分查找)的理解
目录 折半查找的算法思想 查找过程演示 折半查找的判定树 代码实现 折半查找的算法思想 折半查找又称二分查找,仅适用于有序的顺序表 首先将给定值key与表中中间位置元素的关键字比较, 若相等,则返回该 ...
- 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例
介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...
- Java数据结构与算法 线性查找和二分查找
查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...
- 顺序查找与二分查找算法
顺序查找算法 顺序查找是非常简单常用的查找算法,基本思路:从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回-1.该算 ...
- 【Java数据结构与算法】第九章 顺序查找、二分查找、插值查找和斐波那契查找
第九章 顺序查找.二分查找.插值查找和斐波那契查找 文章目录 第九章 顺序查找.二分查找.插值查找和斐波那契查找 一.顺序查找 1.基本介绍 2.代码实现 二.二分查找 1.基本介绍 2.代码实现 三 ...
最新文章
- Stream、WshShell、WshUrlShortcut对象及Shell.Application的参数与使用
- ISA Server 2006 安全保障指南
- 全网最详细的Xshell或SecureCRT下spark-shell里出现无法退格或者删除的问题现象的解决办法(图文详解)...
- 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了
- matlab-画个拱桥和倒影?
- 飞天大数据平台助力轻松筹数字化运营
- 命令点无效怎么处理_怎么更好处理闲置包包,买包卖包都要记住这5点
- ClassLoader简介
- word2013标题编号变成黑框
- 从ipa文件中导出图片
- NOIP2005复赛 普及组 第1题 陶陶摘苹果
- Android dialog中显示一个超链接
- GStreamer 编写一个简单的MP3播放器
- python3.3使用tkinter实现猜数字游戏代码
- ubuntu 16.04 重装失败:进入grub出不来
- 巴西发生矿坝决堤事故 外媒:90名受困者已救出
- 寒武纪裁员:软件研发部门和应届生为重灾区
- xmanager显示linux7桌面,Xmanager 5远程连接CentOS7图形化界面
- 报名进行时!邀您一起海外社媒会话跨境直播,实地探访MCN机构
- 拿到软考高级证书就是高级职称了吗?