麻省理工大学公开课笔记:算法导论(一)——引言

为什么要写这个系列博客?

  第一,从自身角度来说,作为一名即将毕业的计算机专业本科生,我深深感受到了自己在基础方面的不足,尤其是算法与数据结构。
  这种感受伴随了我的整个大学生涯,由于我的学校在计算机学科并不是传统的强校,身边的同学(包括我自己)都有一种莫名的自卑感,觉得低人一等。这种感受在我大三实习期间更为明显,业务代码写到一半,要经常到网上找资料“现学现卖”。
  第二,算法与数据结构作为计算机科学最核心的课程之一,不仅可以很好的锻炼个人思维能力,也对学习者的学术或职业生涯有深远的影响。算法功底好的人,运气不会太差。
   鉴于以上两点,我决定静下心来,把《算法导论》完整的学习一遍。之所以选择写系列博客,是因为一来可以把控自己的学习进度,二来可以供以后复习查阅,一举两得。

这个系列主要包含什么内容?

  本想通读《算法导论》,并记录笔记,但考虑到读书的效率不如看视频高,所以决定以观看网易公开课中麻省理工大学开放的“算法导论”课程视频为主,参考《算法导论》书籍等方式进行学习。博客将同时包含理论讲解和代码实现(Java)。参考视频课程目录,初步拟定提纲如下:

  1. 课程简介及算法分析
  2. 渐近符号,递归及解法
  3. 分治法
  4. 快排及随机化算法
  5. 线性时间排序
  6. 顺序统计、中值
  7. 哈希表
  8. 全域哈希和完全哈希
  9. 二叉搜索树
  10. 平衡搜索树
  11. 扩充的数据结构、动态有序统计和区间树
  12. 跳跃表
  13. 平摊分析,表的扩增,势能方法
  14. 竞争性分析,自组织表
  15. 动态规划,最长公共子序列
  16. 贪婪算法,最小生成树
  17. 最短路径算法:Dijkstra算法,广度优先搜索
  18. 最短路径算法:Bellman和差分约束系统
  19. 最短路径算法:点的最短路径
  20. 高级课题:并行算法(一)
  21. 高级课题:并行算法(二)
  22. 高级课题:缓存参数无关算法(一)
  23. 高级课题:缓存参数无关算法(二)

接下来我会以此为准,按序更新博客。

视频链接: http://open.163.com/special/opencourse/algorithms.html

点赞