
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4 怎样才能学好算法
初学者总是抱怨:算法为什么这么难!
主要的原因是初学者没有找到学习算法的门路,算法是计算机行业的前辈们智慧的精华,本身固然存在一定的复杂性,但是学习起来困难的主要原因还是讲解者讲得不到位。学习算法就好像我们上学的时候学习数学,虽然数学的复杂公式与逻辑对于学习者确实存在一定的难度,但是解题思路还是有规律可循的,通过对具体的题型分类,辅以大量的训练,学习者很快就会掌握该题型的解法。学习算法也是一样的道理,首先我们要将算法进行分类,在各种各样的算法中抽丝剥茧,找到每种算法的本质规律,然后配以大量的实战演练,让读者在明白算法的同时可以进行实战训练,通过即学即练的方式加深记忆,掌握这些经典算法。
(1)笔者从实际出发并参考其他的经典算法书籍,去掉实际工作中并不能用到的复杂算法,使本书只保留了初学者应该掌握的经典算法:贪心算法、分而治之算法、树算法、图算法、动态规划、回溯法和分支限界法。本书并不像传统算法书籍那样对算法进行严密的数学推理、八股文式的讲解,而是采用形象的生活中的例子阐述算法,让读者身临其境,通过采用算法解决生活中的小问题的方式,让读者明白算法就在我们的身边,算法可以解决生活中的实际问题,以此来让读者加深对算法的理解。
(2)从笔者的面试和被面试经验来看,作为一名程序员,仅仅能理解算法只能说是刚刚合格,想让面试官眼前一亮还需要一定的编程功底。算法的设计和实现就像一个人的两条腿走路,缺一条都是走不快的,所以本书不仅描述算法的流程,通过算法得出结论后,还会通过实战编程对算法进行实现,从而验证算法设计的正确性,不仅加深读者对算法的理解,还让读者可以通过编程实现该算法,真正地做到让读者不仅会设计算法,还会实现算法。