让你秒懂的折半查找(二分查找)
折半查找又称二分查找,只能适用于有序的顺序表。
//折半查找
int Bsearch(int R[],int low,int high,int key){int min;while(low<=high){mid=(low+high)/2; //取中间位置if(R[mid]==key) //查找成功return mid;else if(R[mid]>key)high=mid-1; //从前半部分继续查找 elselow=mid+1; //从后半部分继续查找 }return -1; //查找失败
}
折半查找的过程可用二叉树来描述,称为判定树。圆形结点表示数组中存在的元素,矩形叶结点表示查找失败的元素。
等概率查找时,n个元素查找成功的ASL(平均查找长度)=log(n+1),log(n+1)应向上取整,但是那个符号敲不出来。。。
让你秒懂的折半查找(二分查找)相关推荐
- 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)
目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...
- C语言之折半查找(二分查找)
一.什么是折半查找? 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中 ...
- Java实现折半查找(二分查找)的递归和非递归算法
Java二分查找实现,欢迎大家提出交流意见. /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: * 1.要求所查找的数组已有序,并且其 ...
- Python查找-二分查找
Python查找-二分查找 二分查找 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务. 它的基本思想是,将n个元素分成个数大致相 ...
- 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例
介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...
- 数据结构 | 折半查找 /二分查找 算法细节、二分查找判定树
一.基本思想 假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步 ...
- 理论基础 —— 查找 —— 二分查找
[概述] 二分查找又称折半查找,其要求线性表中的记录必须按关键码有序,且必须采用顺序存储. 其基本思想是:用给定值 k 先与中间结点的关键字比较,中间结点把线形表分成两个子表,若相等则查找成功:若不相 ...
- 冒泡排序 | 快速排序 | 线性查找 | 二分查找等
目录 排序算法:冒泡排序 排序算法:快速排序 数组的复制.反转.查询(线性查找.二分查找) 排序算法:冒泡排序 public static void main(String[] args){int[] ...
- Java数据结构与算法——线性查找 二分查找 插值查找
1.线性查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值. package com.szh. ...
最新文章
- 富文本编辑器---笑脸表情(一)
- oracle错误代码12516,ORA-12516错误解决
- 2021牛客暑期多校训练营1 G-Game of Swapping Numbers(最优解转化+贪心)
- apache 隐藏php版本,PHP+Apache环境中怎么隐藏Apache版本
- oracle 命令分析2
- bootstrap signin将邮件改成用户名_了解电子邮件传递背后的流程
- flex实现最后一个元素居右
- LeetCode 147. Insertion Sort List
- 使用WindowsHooks库制作和使用全局钩子
- 使用Python Chord包画出好看的弦图
- iperf简介与下载安装
- ubuntu1804安装显卡驱动
- 【DDNS】Python实现阿里云域名DDNS
- Jet Aviation Basel基于Siemens PLM Software解决方案构建其未来数字化战略
- css 字体颜色 样式大全
- Vs —— 转移Qt项目后环境问题
- Unity加载并展示PPT
- 梅科尔工作室-徐锦航-鸿蒙笔记2
- HTML+CSS+JS仿百度导航(包括下拉框等)
- cas的service管理
热门文章
- 成功解决AttributeError: type object 'scipy.interpolate.interpnd.array' has no attribute '__reduce_cython
- github RL: DP
- hudson部署过程
- G面经prepare: Set Intersection Set Difference
- DevExpress ASP.NET 使用经验谈(9)-Dev控件客户端事件 ClientSideEvents
- 通告,消息,提醒 DB
- castle 组件化开发应用配制示例
- 每天学一点flash(40) 制作走马灯四
- BLE-NRF51822教程-RSSI获取
- RV1108调试串口参数设置