数据结构--折半查找

目录

折半查找知识总览

折半查找的代码实现

查找效率分析

折半查找判定树的构造

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

折半查找的效率

回顾本节内容


折半查找知识总览

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

折半查找的代码实现

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

查找效率分析

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

相关推荐
The_Second_Coming18 小时前
ELK 学习笔记
笔记·学习·elk
墨雪不会编程18 小时前
数据结构—排序算法篇二
数据结构·算法·排序算法
wdfk_prog18 小时前
[Linux]学习笔记系列 -- [kernel][time]timekeeping
linux·笔记·学习
2301_7965125218 小时前
Rust编程学习 - 如何理解Rust 语言提供了所有权、默认move 语义、借用、生命周期、内部可变性
java·学习·rust
ShineWinsu19 小时前
对于数据结构:堆的超详细保姆级解析—上
数据结构·c++·算法·计算机·二叉树·顺序表·
charlie11451419119 小时前
从零开始理解 CSS:让网页“活”起来的语言2
前端·css·笔记·学习·选择器·样式表·原生
im_AMBER19 小时前
Leetcode 46
c语言·c++·笔记·学习·算法·leetcode
2301_7965125219 小时前
Rust编程学习 - 内存分配机制,如何动态大小类型和 `Sized` trait
学习·算法·rust
秦明月1320 小时前
EPLAN电气设计:快捷键版本差异解析
经验分享·学习·学习方法·设计规范
时间醉酒21 小时前
数据结构:双向链表-从原理到实战完整指南
c语言·数据结构·算法