MIT算法导论第一节笔记

算法分析——研究性能和资源利用的

算法设计

 

什么比性能更重要?

为什么要学习算法?

1. 解决最前沿的东西(重复十年前的东西,一般不需要算法);

2. 是更好用户体验的基础,更好安全性的保障;

3. 性能是最底层的东西,相当于“货币”;

4.有趣。

 

伪代码的好处:使算法描述简洁,易书写。

三种算法分析:

最坏时间分析——运行的上界,用户承诺时间

平均时间分析(需要假设统计分布)

最好时间分析——没什么用

 

渐近分析:去掉与机器相关的常量,关注时间增长。

 

排序问题:

插入排序:与输入的情况有关(如:已经排好序)

                  与输入规模有关

                  当N很小时,快;N较大时,慢

归并排序:当N大于30时,快

 

用递归树方法得到递归算式的界值。

 

只学习算法分析并不能成为编程高手,还要结合工程实际(什么时候问题与算法相关,什么时候不相关)

 

个人总结:MIT的课程让人感觉讲的让人明白,不仅讲了什么,还讲了为什么,这样做的好处及不足是什么。

点赞