每个程序员都应该收藏的算法复杂度速查表

点击上方“后端技术精选”,选择“置顶公众号”

技术文章第一时间送达!

来源:始终

liam.page/2016/06/20/big-O-cheat-sheet/

复杂度通常会使用大-O 记号来表示,比如快速排序的平均时间复杂度是 O(nlog(n))。虽然我是「理解派」,但是虽然每个算法/数据结构都理解了,不时仍有可能忘记具体某个算法/数据结构的复杂度(特别是在最好、最坏和平均情形下的复杂度)。因此制作一个速查表是蛮有必要的。

动手前先看看是否已经有轮子是一个好习惯,果不其然,我找到了原作。

http://bigocheatsheet.com/

图例

每个程序员都应该收藏的算法复杂度速查表

抽象数据结构的操作复杂度

每个程序员都应该收藏的算法复杂度速查表

数组排序

每个程序员都应该收藏的算法复杂度速查表

图操作

每个程序员都应该收藏的算法复杂度速查表

堆操作

每个程序员都应该收藏的算法复杂度速查表

大-O 复杂度曲线

每个程序员都应该收藏的算法复杂度速查表

END

Java面试题专栏

【20期】你知道为什么HashMap是线程不安全的吗?

【19期】为什么Java线程没有Running状态?

【18期】Java序列化与反序列化三连问:是什么?为什么要?如何做?

【17期】什么情况用ArrayList or LinkedList呢?

【16期】你能谈谈HashMap怎样解决hash冲突吗

【15期】谈谈这几个常见的多线程面试题

【14期】你能说说进程与线程的区别吗

【13期】谈谈 Redis 的过期策略

【12期】谈谈项目中单点登录的实现原理?

【11期】分布式系统接口,如何避免表单的重复提交?

每个程序员都应该收藏的算法复杂度速查表

欢迎长按下图关注公众号后端技术精选

每个程序员都应该收藏的算法复杂度速查表