时间复杂度
:执行算法所需要的时间空间复杂度
:执行算法所需要的内存空间
常见时间复杂度 例如:常数阶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)