分享

常见算法的复杂性

 笑愚1bfj5xnby0 2017-09-27

这个网页介绍了用于计算机科学的常见算法的空间和时间Big-O复杂度。过去我在准备技术岗位面试时,常常花好多时间从网上查找并归纳诸多搜索和排序算法在最佳情况、平均情况和最差情况下的复杂度,以便我在面试时不会被面试官问倒。最近这几年,我面试了硅谷的几家初创公司,还面试了一些规模更大的公司,比如谷歌、Facebook、雅虎、LinkedIn 和eBay。每次我为面试做准备,就问自己:“为什么没人制作一份简单明了的Big-O速查表呢?”于是,为了节省诸位读者的富贵时间,我就索性制作了一份速查表。希望你喜欢!


Big-O复杂度图表


常见的数据结构操作

数据结构

时间复杂度

空间复杂度


平均情况

最差情况

最差情况


访问

搜索

插入

删除

访问

搜索

插入

删除


数组

Θ(1)

Θ(n)

Θ(n)

Θ(n)

O(1)

O(n)

O(n)

O(n)

O(n)

堆栈

Θ(n)

Θ(n)

Θ(1)

Θ(1)

O(n)

O(n)

O(1)

O(1)

O(n)

队列

Θ(n)

Θ(n)

Θ(1)

Θ(1)

O(n)

O(n)

O(1)

O(1)

O(n)

单链表

Θ(n)

Θ(n)

Θ(1)

Θ(1)

O(n)

O(n)

O(1)

O(1)

O(n)

双链表

Θ(n)

Θ(n)

Θ(1)

Θ(1)

O(n)

O(n)

O(1)

O(1)

O(n)

跳跃表

Θ(log(n))

Θ(log(n))

Θ(log(n))

Θ(log(n))

O(n)

O(n)

O(n)

O(n)

O(n log(n))

哈希表

N/A

Θ(1)

Θ(1)

Θ(1)

N/A

O(n)

O(n)

O(n)

O(n)

二叉树

Θ(log(n))

Θ(log(n))

Θ(log(n))

Θ(log(n))

O(n)

O(n)

O(n)

O(n)

O(n)

笛卡尔树

N/A

Θ(log(n))

Θ(log(n))

Θ(log(n))

N/A

O(n)

O(n)

O(n)

O(n)

B-Tree

Θ(log(n))

Θ(log(n))

Θ(log(n))

Θ(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

-黑树

Θ(log(n))

Θ(log(n))

Θ(log(n))

Θ(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

伸展树

N/A

Θ(log(n))

Θ(log(n))

Θ(log(n))

N/A

O(log(n))

O(log(n))

O(log(n))

O(n)

AVL树

Θ(log(n))

Θ(log(n))

Θ(log(n))

Θ(log(n))

O(log(n))

O(log(n))

O(log(n))

O(log(n))

O(n)

KD树

Θ(log(n))

Θ(log(n))

Θ(log(n))

Θ(log(n))

O(n)

O(n)

O(n)

O(n)

O(n)











数组排序算法

算法

时间复杂度

空间复杂度


最佳情况

平均情况

最差情况

最差情况

Quicksort

Ω(n log(n))

Θ(n log(n))

O(n^2)

O(log(n))

Mergesort

Ω(n log(n))

Θ(n log(n))

O(n log(n))

O(n)

Timsort

Ω(n)

Θ(n log(n))

O(n log(n))

O(n)

Heapsort

Ω(n log(n))

Θ(n log(n))

O(n log(n))

O(1)

Bubble Sort

Ω(n)

Θ(n^2)

O(n^2)

O(1)

Insertion Sort

Ω(n)

Θ(n^2)

O(n^2)

O(1)

Selection Sort

Ω(n^2)

Θ(n^2)

O(n^2)

O(1)

Tree Sort

Ω(n log(n))

Θ(n log(n))

O(n^2)

O(n)

Shell Sort

Ω(n log(n))

Θ(n(log(n))^2)

O(n(log(n))^2)

O(1)

Bucket Sort

Ω(n k)

Θ(n k)

O(n^2)

O(n)

Radix Sort

Ω(nk)

Θ(nk)

O(nk)

O(n k)

Counting Sort

Ω(n k)

Θ(n k)

O(n k)

O(k)

Cubesort

Ω(n)

Θ(n log(n))

O(n log(n))

O(n)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多