算法复杂度基础 🧠

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


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. 复杂度分析方法 🧮

  • 渐进分析:关注输入规模趋于无穷时的行为
  • 最坏情况:评估算法的最大运行时间
  • 平均情况:统计所有可能输入的运行时间(需概率模型)
  • 经验分析:通过实际测试数据估算

如需深入学习算法分析,可参考:算法分析