超简单!一看就懂的时间复杂度 & 空间复杂度详解(超多 Python 示例)
目录
📂 开始上课
还在被时间复杂度、空间复杂度搞得头晕?本篇文章用最简单的语言和丰富的 Python 示例,带你轻松掌握这些算法基础概念!无论你是算法新手还是想优化代码,这篇文章都能帮你快速理解,让你的代码又快又省!🚀
💡 什么是时间复杂度和空间复杂度?
⏳ 时间复杂度(Time Complexity)
时间复杂度是衡量算法运行时间随输入规模变化的增长速度。它通常用 大 O 符号(O 记号) 表示,比如:
- O(1):运行时间与输入大小无关(最快)
- O(n):运行时间随输入成正比增加
- O(n²):输入翻倍,运行时间变成 4 倍(较慢)
📈 Python 代码示例:时间复杂度解析
1️⃣ O(1) - 常数时间
无论输入大小如何,执行的操作数始终是固定的。
1 | def get_first_element(lst): |
1 | def is_even(n): |
1 | def access_dict(d, key): |
✅ 特点:即使数据量增加,运行时间也不会增长。
2️⃣ O(n) - 线性时间
遍历整个列表,每个元素都要访问一次。
1 | def sum_list(lst): |
1 | def contains(lst, target): |
1 | def copy_list(lst): |
✅ 特点:数据量翻倍,执行的次数也翻倍。
3️⃣ O(n²) - 二次方时间
嵌套循环,每个元素都要与所有其他元素比较一次。
1 | def print_pairs(lst): |
1 | def bubble_sort(arr): |
1 | def find_duplicates(lst): |
✅ 特点:数据量翻倍,执行的次数变成 4 倍。

📈 Python 代码示例:空间复杂度解析
1️⃣ O(1) - 常数空间
使用固定数量的额外存储空间。
1 | def sum_list(lst): |
1 | def swap(a, b): |
✅ 特点:不管数据多大,占用的额外空间都是固定的。
🎯 总结
| 复杂度 | 时间示例 | 空间示例 | 适用情况 |
|---|---|---|---|
| O(1) | 直接访问数组元素 | 只使用几个变量 | 超快,适用于查找等操作 |
| O(n) | 遍历列表 | 复制列表 | 适用于大多数线性操作 |
| O(n²) | 双重嵌套循环 | 创建二维数组 | 适用于少量数据,但大数据时需优化 |
🎯 结语
希望这篇文章能帮助你更直观地理解时间复杂度和空间复杂度,让你的代码更加高效!🚀
📌 如果你觉得有帮助,欢迎点赞、分享,让更多人受益!🔥
作者:
胖胖不胖
版权声明:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不止于python
感谢您的支持,我会继续努力!
微信支付
支付宝