数据结构(九)查找
 

种类

顺序表查找

数据结构(九)查找
 
时间复杂度O(n)
 

有序表查找

二分查找
时间复杂度O(logn)
 

插值查找

二分查找的优化版,每次不二分,而是采用关键字与最大最小值比较后再查找
时间复杂度O(logn)
 

斐波那契查找

时间复杂度O(logn)
数据结构(九)查找
 

线性索引查找

按照结构分可以分为线性、树形、多级索引
 

稠密索引

数据结构(九)查找
 
数据结构(九)查找
其中索引项是有序的,所以可以通过二分插值等查找方式查找索引项, 再通过索引项映射到真正的数据
 

分块索引

数据结构(九)查找
块内数据结构
数据结构(九)查找
 
数据结构(九)查找
 

倒排索引

由属性值来确定文档位置,而不是由文档确定属性值位置
常用于搜索引擎,基于倒排索引的开源框架lucene
 

二叉排序树

顺序表查找效率高,但是增删的效率低
中序遍历就可以得到有序的序列
数据结构(九)查找
 
数据结构(九)查找
查找和插入都很简单,删除有点麻烦,分为3种情况
数据结构(九)查找
前两种情况都好说,第一种直接删除,第二种删除后让唯一的子结点继承被删的位置,
第三种需要通过中序遍历找到该结点的前驱或后继,然后让前驱或后继顶替被删结点
 
二叉排序树总结
查找最好情况是O(logn),也就是平衡二叉树的形态,最坏情况是O(n),也就是斜树,效率等同于顺序表遍历
效率取决于树的深度,极端的斜树就会导致效率低下,所以就引出了平衡二叉树
 

平衡二叉树

数据结构(九)查找
 
数据结构(九)查找

相关文章:

  • 2021-07-24
  • 2021-09-19
  • 2021-10-27
  • 2021-07-30
猜你喜欢
  • 2021-12-09
  • 2021-11-12
  • 2021-12-31
  • 2021-11-30
  • 2022-01-15
  • 2022-02-07
相关资源
相似解决方案