基本查询方法的时间复杂度

算法 最好情况 最好时间复杂度 最坏情况 最坏情况复杂度 平均时间
顺序表查找 元素在第一个 O(1) 元素在最后一个 O(n) O(n)
折半查询 元素在中间 O(1) 元素在两头 O(logn) O(logn)
插值查询 元素在第一个插值处 O(1) 元素在两头 O(logn) O(logn)
斐波纳挈数列查询 元素在第一个黄金分割点处 O(1) 元素在两头 O(logn) O(logn)
  • 折半查询:mid=low+high2=low+highlow2
  • 插值查询:mid=low+keya[low]a[high]a[low](highlow)
  • 斐波纳挈查询:mid=low+F[k1]1

索引

  • 稠密索引:在线性索引中,将数据集中的每个记录对应一个索引项
    • 索引项一定是按照关键码有序的排序树
  • 分块索引:块内无序,块间有序,复杂度O(n)
  • 倒排索引

你可能感兴趣的:(数据结构)