时间复杂度​:​执行算法所需要的时间
空间复杂度
​:执行算法所需要的内存空间

常见时间复杂度 例如:常数阶O(1)、线性阶O(n)、平方阶O(n^2)、立方阶O(n^3)、对数阶O(log2n)、nlog2n阶O(nlog2n)、指数阶O(n^n)

效率从大到小:O(1) > O(log2n) > O(n) > O(nlog2n) > O(n^2) > O(n^3) > O(2^n) > O(n!) > O(n^n)

时间复杂度计算方式:得出算法的计算次数(空间复杂度与之类似)
用1来取代说有确定次数的加法
用1来取代说有确定次数的加法
  • 常见排序算法

冒泡排序、直接插入排序、希尔排序、选择排序、快速排序、归并排序、堆排序

冒泡排序
最坏情况 平均情况
时间复杂度 O(n^2) O(n^2)
空间复杂度 O(1)

直接插入排序
最坏情况 平均情况
时间复杂度 O(n^2) O(n^2)
空间复杂度 O(1)

希尔排序
最坏情况 平均情况
时间复杂度 O(n^2) O(nlog2n)
空间复杂度 O(1)

选择排序
最坏情况 平均情况
时间复杂度 O(n^2) O(n^2)
空间复杂度 O(1)

快速排序
最坏情况 平均情况
时间复杂度 O(n^2) O(nlog2n)
空间复杂度 O(n) O(log2n)

归并排序
最坏情况 平均情况
时间复杂度 O(nlog2n) O(nlog2n)
空间复杂度 O(n)

堆排序
最坏情况 平均情况
时间复杂度 O(nlog2n) O(nlog2n)
空间复杂度 O(1)
  • 常见查找算法

二分查找、顺序查找

二分查找        最坏情况        平均情况
时间复杂度 O(log2n) O(log2n)
空间复杂度 迭代O(1) 递归O(log2n)

顺序查找 最坏情况 平均情况
时间复杂度 O(n) O(n)
空间复杂度 O(1)