折半查找又称二分查找,只能适用于有序的顺序表

//折半查找
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)应向上取整,但是那个符号敲不出来。。。

让你秒懂的折半查找(二分查找)相关推荐

  1. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  2. C语言之折半查找(二分查找)

    一.什么是折半查找? 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中 ...

  3. Java实现折半查找(二分查找)的递归和非递归算法

    Java二分查找实现,欢迎大家提出交流意见. /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: *     1.要求所查找的数组已有序,并且其 ...

  4. Python查找-二分查找

    Python查找-二分查找 二分查找 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务. 它的基本思想是,将n个元素分成个数大致相 ...

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

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

  6. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  7. 数据结构 | 折半查找 /二分查找 算法细节、二分查找判定树

    一.基本思想 假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步 ...

  8. 理论基础 —— 查找 —— 二分查找

    [概述] 二分查找又称折半查找,其要求线性表中的记录必须按关键码有序,且必须采用顺序存储. 其基本思想是:用给定值 k 先与中间结点的关键字比较,中间结点把线形表分成两个子表,若相等则查找成功:若不相 ...

  9. 冒泡排序 | 快速排序 | 线性查找 | 二分查找等

    目录 排序算法:冒泡排序 排序算法:快速排序 数组的复制.反转.查询(线性查找.二分查找) 排序算法:冒泡排序 public static void main(String[] args){int[] ...

  10. Java数据结构与算法——线性查找 二分查找 插值查找

    1.线性查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值. package com.szh. ...

最新文章

  1. 富文本编辑器---笑脸表情(一)
  2. oracle错误代码12516,ORA-12516错误解决
  3. 2021牛客暑期多校训练营1 G-Game of Swapping Numbers(最优解转化+贪心)
  4. apache 隐藏php版本,PHP+Apache环境中怎么隐藏Apache版本
  5. oracle 命令分析2
  6. bootstrap signin将邮件改成用户名_了解电子邮件传递背后的流程
  7. flex实现最后一个元素居右
  8. LeetCode 147. Insertion Sort List
  9. 使用WindowsHooks库制作和使用全局钩子
  10. 使用Python Chord包画出好看的弦图
  11. iperf简介与下载安装
  12. ubuntu1804安装显卡驱动
  13. 【DDNS】Python实现阿里云域名DDNS
  14. Jet Aviation Basel基于Siemens PLM Software解决方案构建其未来数字化战略
  15. css 字体颜色 样式大全
  16. Vs —— 转移Qt项目后环境问题
  17. Unity加载并展示PPT
  18. 梅科尔工作室-徐锦航-鸿蒙笔记2
  19. HTML+CSS+JS仿百度导航(包括下拉框等)
  20. cas的service管理

热门文章

  1. 成功解决AttributeError: type object 'scipy.interpolate.interpnd.array' has no attribute '__reduce_cython
  2. github RL: DP
  3. hudson部署过程
  4. G面经prepare: Set Intersection Set Difference
  5. DevExpress ASP.NET 使用经验谈(9)-Dev控件客户端事件 ClientSideEvents
  6. 通告,消息,提醒 DB
  7. castle 组件化开发应用配制示例
  8. 每天学一点flash(40) 制作走马灯四
  9. BLE-NRF51822教程-RSSI获取
  10. RV1108调试串口参数设置