【第一章:人工智能基础】03.算法分析与设计-(1)算法复杂度分析

第一章 人工智能基础

第三部分:算法分析与设计

第一节:算法复杂度分析

内容:时间复杂度与空间复杂度的概念与计算,Big-O 符号的使用


一、为什么要分析算法复杂度?

在人工智能系统中,我们经常要处理大规模数据和复杂模型。算法复杂度分析能帮助我们评估算法的运行效率和资源消耗,避免“看起来可行、实际跑不起”的问题。


二、时间复杂度(Time Complexity)

时间复杂度表示算法执行所需的基本操作数量与输入规模之间的关系,不关心具体运行时间,而关注增长趋势。

常见时间复杂度级别(从快到慢):
表达方式名称示例算法
O(1)常数时间访问数组元素 a[i]
O(log n)对数时间二分查找
O(n)线性时间遍历数组
O(n log n)线性对数时间归并排序、快速排序
O(n²)平方时间冒泡排序、选择排序
O(2ⁿ)指数时间递归求斐波那契
O(n!)阶乘时间全排列(暴力穷举)
示例:计算 1 到 n 的和
def sum_n(n):
    total = 0
    for i in range(1, n + 1):
        total += i
    return total

该函数有一个 for 循环,循环 n 次,因此时间复杂度为 O(n)


三、空间复杂度(Space Complexity)

空间复杂度表示算法在运行时所需额外内存空间的增长量(不包括输入本身占用的空间)。

示例:
def create_list(n):
    return [i for i in range(n)]

该函数创建了一个长度为 n 的列表,因此空间复杂度为 O(n)

若函数中只使用常量变量(如计数器等),则空间复杂度为 O(1)


四、Big-O 符号的使用

【漫话机器学习系列】017.大O算法(Big-O Notation)_big o notation-CSDN博客

Big-O 符号(大O符号)用于描述算法在最坏情况下的复杂度。

特点:
  • 表示的是渐进上界(最坏情况);

  • 忽略常数项和低阶项:如 O(3n² + 5n + 100) 简化为 O(n²);

  • 用于评估算法的可扩展性(即输入变大时性能的变化)。


五、其他相关符号(了解)
  • Big-Omega (Ω):表示最优时间复杂度(最好情况);

  • Big-Theta (Θ):表示平均或精确复杂度(最好与最坏一致时使用);

但实际应用中,Big-O 使用最广泛。


六、小结与建议
  • 时间复杂度关注算法执行步骤的增长趋势,空间复杂度关注额外内存占用;

  • Big-O 是工程中最常用的描述方式,用于衡量最坏情况下性能;

  • 编写算法时应在准确性、效率、可读性之间做出权衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值