zoukankan      html  css  js  c++  java
  • 数据结构(九)查找

     

    定义

     

    种类

    顺序表查找

     
    时间复杂度O(n)
     

    有序表查找

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

    插值查找

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

    斐波那契查找

    时间复杂度O(logn)
     

    线性索引查找

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

    稠密索引

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

    分块索引

    块内数据结构
     
     

    倒排索引

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

    二叉排序树

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

    平衡二叉树

     
  • 相关阅读:
    html和css基础
    Chrome的插件使用
    04
    03
    MySQL的下载与安装(超完整)
    IDEA运行单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
    IDEA 快捷键合集
    IDEA + Spring的安装以及入门案例创建(超详细)
    Java NullPointerException异常的原因
    Eclipse 显示 错误:找不到或无法加载主类
  • 原文地址:https://www.cnblogs.com/ulysses-you/p/7130272.html
Copyright © 2011-2022 走看看