目前浅显地看过《数据结构与算法分析》 《算法设计与分析基础》两本涉及到算法的书。
简单认为,学习算法的重点和难点都不在代码实现上,而在:
1、数学逻辑式 这个是写出伪代码的关键
2、算法正确性证明 证明该算法能得到最优解还是比较优解
数学逻辑式,从两方面考虑:一种是迭代,另一种是递归。
迭代思维相对容易理解,特点是:
一、可以明确知道循环次数;
二、每次循环中操作对象可以用变量表示,如:
for i=0 to i=n-1 do: a[i] ....
递归思维特点:
本质上就是数学归纳法,数学式: f(n) = F(f(n-1)) .... 或者 f(n) = F(f(n/2)) ....
算法正确性证明,这个也还是不太懂,基本都是数学归纳法