复杂度
排序
- 冒泡、直选、直插 n^2 – 对每个元素找位置、两个for循环嵌套
 - 快排、堆、希尔、归并 nlogn – 二分思想(树)
 - 计数 n+max – 先遍历放到max长度数组,再遍历数组取数
 - 基数 n*位数 – 每位都来来一遍分配
 - 不稳定算法: “快希选堆”(快牺牲稳定性)
 
查找
- 分块、二分、二叉排序查找 logn
 - 顺序查找 n
 - 哈希 O(1)
 
遍历
- 树遍历:时间复杂度为O(n),同样空间复杂度也为O(n),n为结点数。
 - 图遍历: 邻接表O(V+E) 邻接矩阵O(V^2)
 
红黑
- 插入、删除、查找的最坏时间复杂度都为 O(logn)。
 
b树
- 平衡二叉树没能充分利用磁盘预读功能
B树是为了充分利用磁盘预读功能来而创建的一种数据结构
专门做索引而发明 
- 平衡二叉树没能充分利用磁盘预读功能
 b+
- 查找,(m/2) * log(m)n
 
b b+区别
- 叶子才有数据->减少磁盘io
 - 利于范围查询
 
    本文作者:
    
      yuqing wang
    
    
本文链接: https://satyrswang.github.io/2021/04/05/常见算法复杂度/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
      
      
      
        
      
    本文链接: https://satyrswang.github.io/2021/04/05/常见算法复杂度/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!