技术文章第一时间送达!

来源:始终

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

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

http://bigocheatsheet.com/

图例

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

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

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

数组排序

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

图操作

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

堆操作

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

大-O 复杂度曲线

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

END

Java面试题专栏

【40期】说一下线程池内部工作原理【39期】Mybatis面试18问,你想知道的都在这里了!【38期】一份tcp、http面试指南,常考点都给你了【37期】请你详细说说类加载流程,类加载机制及自定义类加载器【36期】说说 如何停止一个正在运行的线程?【35期】谈谈你对Java线程之间通信方式的理解【34期】谈谈为什么要拆分数据库?有哪些方法?【33期】分别谈谈联合索引生效和失效的条件【32期】你知道Redis的字符串是怎么实现的吗?【31期】了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?应对措施是什么

 

每个程序员都应该收藏的算法复杂度速查表_数据结构_07