数据结构--折半查找

目录

折半查找知识总览

折半查找的代码实现

查找效率分析

折半查找判定树的构造

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

折半查找的效率

回顾本节内容


折半查找知识总览

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

折半查找的代码实现

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

查找效率分析

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个元素.....的查找表对应的折半查找判定树的样子

相关推荐
haoly19892 小时前
数据结构和算法篇-线性查找优化-移至开头策略
数据结构·算法·移至开头策略
光影少年2 小时前
angular生态及学习路线
前端·学习·angular.js
逆小舟6 小时前
【C/C++】指针
c语言·c++·笔记·学习
earthzhang20216 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程
武文斌776 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
递归不收敛6 小时前
吴恩达机器学习课程(PyTorch适配)学习笔记:1.3 特征工程与模型优化
pytorch·学习·机器学习
kunge1v57 小时前
学习爬虫第四天:多任务爬虫
爬虫·python·学习·beautifulsoup
哲Zheᗜe༘7 小时前
了解学习MySQL数据库基础
数据库·学习·mysql
peter67689 小时前
pandas学习小结
学习·pandas
机器视觉知识推荐、就业指导9 小时前
STM32 外设驱动模块【含代码】:SG90 舵机模块
stm32·单片机·嵌入式硬件·学习