常见函数的时间复杂度
【list】的内置函数时间复杂度
方法 | 复杂度 | 简介 |
---|---|---|
index[x] | O(1) | 索引 |
index assignment | O(1) | 索引赋值 |
append | O(1) | 尾部追加 |
pop() | O(1) | 尾部弹出 |
pop(i) | O(n) | 指定位置弹出 n列表长度, 最坏时间复杂度 |
insert(i, item) | O(n) | 指定位置添加 |
del operator | O(n) | 删除, 代表一个一个元素去清空 |
iteration | O(n) | 迭代 |
contains(in) | O(n) | 看谁是否在列表中, 需要遍历 |
get slice[x:y] | O(k) | 取切片, 从x取到y, 一次定位到x, 然后取到y ,x和y之间有多少就是k |
del slice | O(n) | 删除切片 删除位置之后, 后面的元素都需要往前移动 |
set slice | O(k) | 设置切片, li[0:3] = [1, 2, 3, 4]k是补充的东西数量 |
reverse | O(n) | 置返 |
concatenate | O(k) | 代表使用的+, 把两个列表加到一起, k是第二个列表中的元素 |
sort | O(nlogn) | 排序 |
multiply | O(nk) | 相乘 li=[1, 2] -> n li * 10 -> k |
【dict】 的内置函数时间复杂度
方法 | 复杂度 | 简介 |
---|---|---|
copy | O(n) | 复制 |
get item | O(1) | 取 |
set item | O(1) | 设置 |
delete item | O(1) | 删除键 |
contains(in) | O(1) | 包含 |
iteration | O(n) | 迭代 |
排序算法时间复杂度和效率的比较
![](https://img2018.cnblogs.com/blog/1567523/201907/1567523-20190703164254892-1351901643.png)