数据结构--折半查找

目录

折半查找知识总览

折半查找的代码实现

查找效率分析

折半查找判定树的构造

练习绘画折半查找判定树的构造

折半查找的效率

回顾本节内容


折半查找知识总览

  • 算法思想
  • 算法实现
  • 查找判定树
  • 折半查找效率

折半查找的代码实现

(基于增序排列时的代码)

查找效率分析

mid=(low+high)/2

紫色是查找失败,绿色是查找成功,1/11和1/12分别是对应的成功和失败元素的概率

折半查找判定树的构造

如果当前low和high之间有奇数个元素,则mid分割后,左右两部分元素个数相等

如果当前low和high之间有偶数个元素,则mid分割后,左半部分比右半部分一个元素

mid=(low+high)/2

这里是对mid向下取整

练习绘画折半查找判定树的构造

图中的数字是编号,是分别对应画出含有1个元素,2个元素,3个元素.....的查找表对应的折半查找判定树的样子

折半查找的效率

回顾本节内容

拓展思考

1.折半查找和顺序查找的速度问题

2、

这里是对mid向上取整

如果当前low和high之间有奇数个元素,则mid分割后,左右两部分元素个数相等

如果当前low和high之间有偶数个元素,则mid分割后,左半部分比右半部分一个元素

图中的数字是编号,是分别对应画出含有1个元素,2个元素,3个元素.....的查找表对应的折半查找判定树的样子

相关推荐
元Y亨H22 分钟前
深度解构:数据结构与算法的理论基石与工程演进
数据结构·算法
元Y亨H35 分钟前
数据结构与算法的通俗指南
数据结构·算法
2301_764441331 小时前
用动力学系统(微分方程)为 Kernberg 的客体关系单元提供数学化的操作定义,把“自体—客体“这对心理结构建模成一个二维耦合系统
数据结构·python·算法·数学建模
吃好睡好便好1 小时前
MATLAB中图像的读取、写入和显示
开发语言·图像处理·学习·计算机视觉·matlab
~kiss~1 小时前
大模型中的强化学习算法和对齐算法的区别
学习
MartinYeung51 小时前
[论文学习]InjecAgent:工具集成大语言模型智能体的间接提示注入基准测试
网络·学习·语言模型
sean9082 小时前
Vim 学习 - 快速删除/修改
学习·vim
小黄人软件2 小时前
如何解决不想学、学不会、学不进去,吸收内化不了学的东西,怎么办?如何真正建立“知识内化系统“?不输出,不学习
学习
个 人 练 习 生3 小时前
strcmp与strstr函数的模拟实现
c语言·开发语言·经验分享·学习·程序人生
晓梦林4 小时前
[ACTF2020 新生赛]BackupFile学习笔记
android·笔记·学习