第一章 绪论(下)动态规划
DSA三步走
make it work;
make it right;(递归)(迭代乃人力,递归方神通)
make it fast.
斐波那契数列 的复杂度是
o
(
f
i
b
o
n
(
n
+
1
)
)
∼
o
(
Φ
n
)
,
Φ
=
1.618
o(fibon(n+1))\sim o(\Phi^n),\quad \Phi= 1.618
o(fibon(n+1))∼o(Φn),Φ=1.618
估算近似式:
Φ
36
=
2
25
\Phi^{36} = 2^{25}
Φ36=225,
2
10
=
1
0
3
2^{10}=10^3
210=103
Φ
5
=
10
\Phi^{5} = 10
Φ5=10
这个算法不好。。。
课程代码:
第一章 绪论(下)
data structure & alogrithm
理想平台 RAM
复杂度分析:迭代(级数求和)+递归(递归跟踪、递归方程)
1. 探寻级数与大o记号的规律
推荐书,Concrete Mathematics
1.1循环转化为级数
典型:双重循环==>矩形的面积
例子–排序
【注意】:这里有一点点 略微的优化。虽然不足以 降低复杂度的等级,但是有意义。
算法的正确性
挖掘 不变性、单调性 推导正确性
准确定量估算
封底估算(Back-of-The-Envelope Caculation)
基本直觉:
三生三世中的一天,约为 一天中的一秒;
在宇宙至今的 三生三世,约为 三生三世中的0.1秒;
硬件的改进可以将,三十年缩短为二十分钟;
通过算法的改进,可以将三十年缩短为半分钟。
封底计算,英文为 back-of-the-envelope calculations (BotEC),这个术语由物理学家恩里科 ·费米创造,指用简单到 可以在手边随便的什么小纸片——比如信封的背面上——进行的计算,对复杂的方程作同一数量级内的近似求解。
指,抓住本质。
内容出自 清华大学-邓俊辉-数据结构