如何正确的学习算法?

因为本人是非科班出身,所以对于算法有着特殊的情结。但在学习算法的过程中,我拿起又放下,断断续续了好几次,都未能修成正果。所以在这里想请教下学习算法的正确姿势。

我的主要问题有:

  1. 因为我是文科专业毕业的,所以数学这方面的知识还比较欠缺。像《线性代数》《离散数学》《概率论》这些课程是否是学习算法的预置课程?
  2. 如何从学习算法中获取成就感,从而形成正向反馈?
  3. 算法的学习周期大概是多长?
阅读 4.9k
4 个回答

边去oj刷题,边啃书。
oj有很多:
http://acm.hdu.edu.cn/
http://poj.org/
书可以选择刘汝佳的两本算法入门,难一点的可以直接啃算法导论,不过不建议。

  1. 初级学习算法这些都不需要,高级的等你学完初级再说
  2. 不知道
  3. 看完一本书的话也就5-10个月吧,看具体什么书了

1 这些算是基础课程,有利于锻炼逻辑思维,但可能初级算法中用不到,譬如冒泡,插入等排序算法
2 刷题,刷letcode或者剑指offer
3 如果不想被淘汰,学习就没有期限可言

1.常见的算法一般用不到数学,你可以找一本大学的数据结构与算法的书看一看入门
2.多去搜一些常见开源软件用到的算法,比如mysql的索引用到了那些算法
3.跟对师傅会很快,一个月入门,自己摸索看时间和理解能力的快慢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题