/AlgorithmDiagram

算法图解的算法代码示例,用Python和Java实现,后期会加入其它语言

Primary LanguageJavaMIT LicenseMIT

AlgorithmDiagram

算法图解的算法代码示例,用Python和Java实现,后期会加入其它语言。
也欢迎用其它语言来实现,那就在好不过了。


#《算法图解》阅读计划 ####算法群阅读计划(第1期)

领读人:张旱文

本书特色

  • 你渴望像看喜欢的小说一样学习算法吗?如果是,这本书正是你梦寐以求的!
  • 算法学习起来一点都不乏味!这本书既活泼有趣又富有洞见。
  • 这本书完成了一项不可能完成的任务:让数学变得有趣而易懂! 适合读者
  • 业余程序员、编程培训班学员、需要重温算法的计算机专业毕业生、对编程感兴趣的物理或数学等专业毕业生

答疑时间安排

  • 每周一次,周六晚上8点到10点

欢迎读者们来图灵读者小密圈打卡、贴图、发疑问

总跨度

  • 一个月  

每天阅读用时

  • 2小时(建议多做练习)

读前须知

  • 我会将书中的算法用Python和Java两种语言实现。(Python是书中使用的语言),也欢迎用其它语言来实现,那就更好了。

  • 方便记录我们的练习,我在github创建了一个仓库,大家可以把每天的练习进行PR。(要保证程序是AC的才行哦),这样才有参考的价值,大家可以对不同的实现来进行讨论。  

  • 仓库地址:https://github.com/zhanwen/AlgorithmDiagram

  • 目录我已创建完成。这里为了方便记录和区分。大家在PR的时候,建议文件命名规则为:作者姓名英文缩写+文件名。在chapter1中已有示例。

  • 在练习的过程中,我也会找一些书中相关的算法题目,让大家一起来练习。

阅读划分

一、第一部分(1-7章)

阅读时长:1-2 周

重点部分

1. 二分查找(掌握) 以最常见的例子查电话簿引入第一个算法,可以明显感觉到使用不同的算法,带来的性能上和时间上的提升。

2. 大O表示法(掌握) 为了能够比较各种算法之间的运行时间,要有一个可以衡量的点。

3. 内存的工作原理 (理解)

4. 数组和链表 (理解)

5. 选择排序 (掌握)

6. 快速排序(掌握)

难点部分

1. 递归(掌握)

2. 散列表(掌握)

3. 图(理解并掌握)  

二、第二部分(8-11章)

阅读时长:3-4 周    

重点部分

1. 贪婪算法 (背包问题)(理解掌握)

2. 动态规划(理解掌握)

3. K最近邻算法(理解掌握)

难点部分(理解)

1. 树

2. 傅里叶变换 

3. 并行算法

4. MapReduce

5. 反向索引

6. 布隆过滤器

7. SHA算法

8. 局部敏感的散列算法

9. Diffie-Hellman密钥交换

10. 线性交换

其他建议

  • 第一部分内容计划是两个星期以内要完成,看的快的同学可能一个星期就完成了,这里大家可以自己安排。

  • 第二部分内容计划在剩余的时间内完成。最重要的是大家一定要自己将算法写出来并能运行,才会有更多的收获。