/Introduction-to-Algorithms

学习《算法导论》:分享 算法实现、习题答案、整理知识等

Primary LanguageC++MIT LicenseMIT

Introduction-of-Algorithms · Build Status

Learning <<Introduction of Algorithms>>, and push Algorithms and Practices to server for management and sharing.

网易有这门课程的公开课,是由本书的作者之一Charles Leiserson讲解的。
书中看不懂的可以参考此教程,或者系统的学习此教程。

Charles Leiserson讲到了一个有趣的问题
1. 算法是一个性能相关的课题,在项目中,什么比性能更重要?
    他和同学们列举了非常多的答案,可维护性,可扩展性,功能性,安全性,用户体验等等等等。
2. 几乎所有的事情都比性能重要,那么为什么需要算法或者性能?
    1> 算法能把不可能变成可能
        通常性能的好坏,直接决定着可行还是不可行
        算法总是处于解决问题的最前沿
    2> 性能可以作为货币,去换取其他特性
    3> 有趣

Code

点击查看代码相关说明

Book

英文版电子书:Introduction_To_Algorithms-A3.pdf
英文版部分课后答案:Intro_to_Algo_Selected_Solutions.pdf

笔记汇总

(注:有些文档中使用LaTax语法书写公式,若无法正常显示可以下载插件”GitHub with MathJax“,如果仍有无法正常显示的公式,可以到CSDN中查看

第一部分 基础知识

  1. 算法在计算中的作用
  2. 算法基础
  3. 函数的增长
  4. 分治策略
  5. 概率分析和随机算法

第二部分 排序和顺序统计量

  1. 堆排序
  2. 快速排序
  3. 线性时间排序
  4. 中位数和顺序统计量

第三部分 数据结构

  1. 基本数据结构
  2. 散列表
  3. 二叉搜索树
  4. 红黑树
  5. 数据结构的扩张

第四部分 高级设计和分析技术

  1. 动态规划
  2. 贪心算法
  3. 摊还分析

第五部分 高级数据结构

  1. B树
  2. 斐波那契堆
  3. van Emode Boas 树
  4. 用于不相交集合的数据结构

第六部分 图算法

  1. 基本的图算法
  2. 最小生成树
  3. 单源最短路径
  4. 所有结点对的最短路径问题
  5. 最大流

第七部分 算法问题选编

  1. 多线程算法
  2. 矩阵运算
  3. 线性规划
  4. 多项式与快速傅里叶变换
  5. 数论算法
  6. 字符串匹配
  7. 计算几何学
  8. NP 完全性
  9. 近似算法