算法复杂度基础 🧠
算法复杂度是衡量算法效率的关键指标,通常分为时间复杂度和空间复杂度。以下是核心内容:
1. 时间复杂度 💡
表示算法执行时间与输入规模的关系,常用 大O符号(O)描述。
- O(1):常数时间复杂度(如数组访问)
- O(n):线性时间复杂度(如遍历数组)
- O(log n):对数时间复杂度(如二分查找)
- O(n²):平方时间复杂度(如嵌套循环)
2. 空间复杂度 📦
表示算法所需内存空间与输入规模的关系。
- O(1):固定空间(如简单变量赋值)
- O(n):线性空间(如动态数组存储)
- O(n log n):分治算法常见(如快速排序)
3. 常见复杂度类型 📊
复杂度 | 示例 |
---|---|
O(1) | 检查数组第一个元素 |
O(log n) | 二分查找 |
O(n) | 计算数组总和 |
O(n²) | 冒泡排序 |
4. 复杂度分析方法 🧮
- 渐进分析:关注输入规模趋于无穷时的行为
- 最坏情况:评估算法的最大运行时间
- 平均情况:统计所有可能输入的运行时间(需概率模型)
- 经验分析:通过实际测试数据估算
如需深入学习算法分析,可参考:算法分析