【算法设计与分析】第1章 绪论

有关介绍

(算法 + 数据结构) = 程序

图灵——计算机科学之父、人工智能之父
图灵奖——计算机界的诺贝尔奖
图灵测试

算法相关性质:输入、输出、确定性、有限性

算法:解决问题的方法或过程

算法正确性

一个算法是正确的,如果它对于每一个输入都最终停止,而且产生正确的输出。

程序调试只能证明程序有错,不能证明程序无错误!

算法复杂性

时间复杂性

一个算法在一台抽象的计算机上运行所需要的时间
(对特定输入产生结果需要的原子操作或“步”数)
T = T ( N , I ) T = T(N,I) T=T(N,I)

N:问题的规模
I:输入

1、最坏情况下的时间复杂性
2、最好情况下的时间复杂性
3、平均情况下的时间复杂性

时间复杂性记号

f(N)和g(N)是定义在正数集上的正函数
若存在正常数 C C C和自然数 N 0 N_0 N0

1、上有界 O O O

f ( N ) f(N) f(N)当N充分大时上有界:当 N ≥ N 0 N \geq N_0 NN0时,有 f ( N ) ≤ C g ( N ) f(N) \leq Cg(N) f(N)Cg(N) g ( N ) g(N) g(N) f ( N ) f(N) f(N)的一个上界

f(N)=O(g(N))

O ( 1 ) < O ( l o g 2 n ) < O ( n ) < O ( n l o g 2 n < O ( n 2 ) < ⋅ ⋅ ⋅ < O ( 2 n ) < O ( n ! ) < O ( n n ) O(1) < O({log}_2n) <O(n) <O(n{log_2}n <O(n^2)<···<O(2^n)<O(n!)<O(n^n) O(1)<O(log2n)<O(n)<O(nlog2n<O(n2)<<O(2n)<O(n!)<O(nn)

2、下有界 Ω \Omega Ω

f ( N ) f(N) f(N)当N充分大时下有界:当 N ≥ N 0 N \geq N_0 NN0时,有 f ( N ) ≥ C g ( N ) f(N) \geq Cg(N) f(N)Cg(N) g ( N ) g(N) g(N) f ( N ) f(N) f(N)的一个下界

f(N)=Ω(g(N))
多项式复杂度

高效算法,堆叠硬件

指数复杂度

低效算法,堆叠硬件无用

3、同阶 θ \theta θ

f ( N ) f(N) f(N)当与 g ( N ) g(N) g(N)同阶:当且仅当 f ( N ) = O ( g ( N ) ) f(N) = O(g(N)) f(N)=O(g(N)) f ( N ) = Ω ( g ( N ) ) f(N) =\Omega(g(N)) f(N)=Ω(g(N))

f(N)=θ(g(N))

运算规则

O(f) + O(g) = O(max(f,g))
O(f) + O(g) = O(f + g)
O(f)O(g) = O(fg)g(N) = O(f(N)),则O(f) + O(g) = O(f)
O(Cf(N)) = O(f(N)),其中C是一个正的常数
f = O(f)

空间复杂性

一个算法对特定输入产生结果所需要的存储空间大小
S = S ( N , I ) S = S(N,I) S=S(N,I)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社恐患者

赚钱不易呜呜呜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值