网路笔记——程序员大牛的博客1

浏览一些程序员博客,对一些观点非常认可,做下记录

A.为什么学算法

1. 面试的时候面算法,包括面项目中几乎不大可能用到的算法,原因是算法往往是对学习和理解能力的一块试金石;

2. 虽说面试的算法本身未必用得到,但熟悉各种算法的人通常更可能熟悉算法的思想.

B. 算法学习经验

算法看了理解了,过段时间就忘,原因在于对算法的证明过程未知其所以然

1. 对于算法问题,有一个一般性原则是,先看一看解空间的构成,尤其是对于搜索问题;

2. 尽量去寻找问题条件能够推导出来的性质,然后利用这些性质去避免不必要的搜寻;

3. 假设已经找到了你要找的元素,那么能得出哪些结论,每一个结论都是最优解的一个必要条件,而每一个必要条件都能够帮助你避免不必要的搜寻;

4. 所谓最优解,就是说比其他所有解都要更好——比与它邻近的所有候选解都要好;

5. 最适合将一个东西讲给别人听的时候并不是等懂了很多年以后,而是刚刚弄懂的时候,这个时候从不懂到懂的差别记忆还非常鲜明,能够清清楚楚地记得到底是哪些关键的地方是最折磨人的,也最能够站在不懂者的角度来思考问题!

6. 检验是否真正理解的最佳方法就是过一段时间之后,自己试着证明一次;

7. 对于一个算法,多寻找各种来源的资料,也许能够找到一个讲的比较深刻的; 8. 多试着去抽象背后的一般性法则,即便后来发现抽象得是错的,也比不去抽象要好!

C.算法学习好书

1.introduction to algorithms a creative approach

2.《编程珠玑》

Ref.

1.A和B.小节摘自刘未鹏大牛的博客

posted @ 2013-08-24 18:50  qkshan  阅读(670)  评论(0编辑  收藏  举报