过来人学习算法

来源:互联网 发布:网络当红男主播 编辑:程序博客网 时间:2024/05/29 08:11
 关于如何学习算法,下面,个人简略谈三点(学算法= 兴趣 + 态度 + 编码 + 关注实践应用):
  1. 兴趣。学好任何一个东西,首先便必须得具备兴趣。算法也不例外。如果你对算法实在没有兴趣,也大可不必担忧。毕竟,各有所爱。
  2. 态度,重试程度。如果你觉得因为算法在实际工作中应用不多,或者标准库里都封装了一切。或者认为,最基本的快速排序都不必去了解,那么此文可以一扫而过了。
  3. 实践。看书,如数据结构方面的教材,一定要把各种最基本的数据结构,如数组,字符串,栈,堆,队列,树,图弄得通通透透(其实,看我之前整理的微软面试100题,也有很大帮助,因为那些面试题大多都跟数据结构和算法相关的,而我也是这么做过来的),其次便是如朋友天时通所说的,基本的迭代法,穷举搜索法,递推法,递归法,贪婪法,分治法,动态规划法,回溯法等等都要弄懂弄透。然后可以读编程珠玑,算法导论(很多人都说算法导论看不懂,实则是其上面的很多数学证明,我也不是很懂。具体可多在纸上画画,如红黑树的相关操作及代码),再加上推敲--反复思考,反复研究,最后编码--关注和结合实际应用,编码实现(写代码实现一个算法比研透一个算法更有用)。仅以上,无它也。

    很多朋友还问到,我是怎么学习算法,或者说学习过程是怎样的,我是这样子学的:从去年12月开始接触算法起(写第一篇算法文章,A*搜寻算法),我先是因为要写有关算法的文章,所以很多的时候都要去参考资料,包括书籍和网上的,特别注重把一个算法真正阐述清楚,而要阐述清楚的话,那么我自己本身就得先把那个算法真正弄懂弄透,即只有自己懂了,我才可以讲明白。然后是我一直在做那有关微软等公司的面试题(大部都涉及到数据结构和算法),然后,再与他人多多交流,最后,在反复推敲和思考某一个算法之后,我便开始编写代码实现某个算法了。这就是我学算法的学习过程

《算法导论》,我看了好久都看不懂抓狂,换种方式,以博客的形式写出来,做出总结蛮好!
原创粉丝点击