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

     

    定义

     

    种类

    顺序表查找

     
    时间复杂度O(n)
     

    有序表查找

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

    插值查找

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

    斐波那契查找

    时间复杂度O(logn)
     

    线性索引查找

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

    稠密索引

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

    分块索引

    块内数据结构
     
     

    倒排索引

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

    二叉排序树

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

    平衡二叉树

     
  • 相关阅读:
    code3728 联合权值
    Codevs 4600 [NOI2015]程序自动分析
    code1540 银河英雄传说
    code1074 食物链
    堆排序
    哈夫曼树与哈夫曼码
    优先队列用法
    code1154 能量项链
    code1225 八数码Bfs
    javascript5
  • 原文地址:https://www.cnblogs.com/ulysses-you/p/7130272.html
Copyright © 2011-2022 走看看