算法复杂度是衡量算法效率的核心指标,通常分为时间复杂度空间复杂度。以下为关键知识点梳理:

1. 时间复杂度 🕒

  • 表示算法执行时间与输入规模的关系
  • 常见类型:
    • O(1):常数时间(如数组随机访问)
    • O(log n):对数时间(如二分查找)
    • O(n):线性时间(如遍历数组)
    • O(n²):平方时间(如双重循环嵌套)
    • O(2ⁿ):指数时间(如递归求解斐波那契数列)
  • 📌 示例:
    时间复杂度

2. 空间复杂度 📦

  • 表示算法所需内存空间与输入规模的关系
  • 关键点:
    • 原地算法(如冒泡排序) vs 额外空间算法(如快速排序)
    • 避免内存泄漏,合理管理递归栈深度
  • 📌 图解:
    空间复杂度

3. 大O表示法 📊

  • 用于描述算法复杂度的渐进行为(Asymptotic Behavior)
  • 忽略常数因子和低阶项,关注增长趋势
  • 📌 深入解析:
    大O符号

4. 复杂度对比表 📈

算法类型 时间复杂度 空间复杂度 适用场景
堆排序 O(n log n) O(1) 大数据排序
哈希表查找 O(1) O(n) 需快速检索
动态规划 O(n²) O(n) 优化重复子问题

5. 扩展阅读 📚

📌 注意:实际开发中需结合具体场景选择最优算法,复杂度分析是性能优化的基石!