数据结构与算法学习资料汇总

一、主线书籍


算法导论(2nd,3rd)CLRS
数据结构与算法分析(C/Java,Mark Allen Weiss)Weiss
数据结构基础(C语言版,Horowitz)Horowitz
以上三本书籍对数据结构和算法整体与局部的把握较合理,讲解清晰,对于基本原理,例子,实现,证明都有所涵盖,涵盖了常用数据结构与算法。
以CLRS为主,参考Weiss和Horowitz的书。并将CLRS中未涉及的内容作为补充学习资料。CLRS的代码为伪代码,前20章内容都较为简单并易于转换为具体代码,后续章节需注意部分章节伪代码的换行缩进问题,比如van Emde Boas树,算法的基础数据结构构建问题,如最短路径问题中的图,最大流中的流网络和残存网络;Weiss书中的代码较为清晰简洁,并配有源代码,较容易转换为实现代码。Horowitz代码未仔细阅读,但对某些问题有较为清晰的例子,如左式堆,二项队列,斐波那契堆等,但翻译较为晦涩,对部分专业名词的翻译简直狗屁不通。

二、学习视频


算法导论 6.046 2005 MIT Prof. Charles Leiserson(CLRS的作者之一)与Prof. Erik Demaine(扎辫子的天才小哥哥,也为CLRS贡献了部分内容,有高级数据结构公开课)
数据结构 浙江大学 Prof.何钦铭教授(讲的非常非常好)Prof.陈越
算法设计与分析 北京大学 Prof.屈婉玲 (建材可能是王晓东的《数据结构与算法》),屈婉玲教授还有离散数学相关公开课,屈老师的讲解十分之清晰

四、辅助书籍


算法(Java,4th,Sedgewick)
论述略显拖沓,代码也没有他的学生Weiss的简洁清晰,比如关于并查集一节的代码,Sedgewick使用了一个额外的数组去保存根的度数,而Weiss则使用结点度的倒数来记录该结点是否为根,如果为根,则为负,否则为正,并指向父链,十分精妙。
但本书对部分问题有较为清晰深入的讲解,如可变数组的实现与性能分析(分析虽无实用,但依然重要,对可变数组的性能进行均摊分析(聚集分析,核算法,势能法)是理解高级分析方法的重要途径),红黑树(改进版左倾红黑树,作者为发明人,非原始红黑树)
本书最为重要的另一个作用是提供了巨量的测试数据,无论是排序,图,还是搜索,都有宝贵的测试数据,感谢Sedgewick。
Sedgewick的老师是《计算机程序设计的艺术》(The Art of Computer Programming)的作者Donald Ervin Knuth,1974年的图灵奖得主 ,而他则是Mark Allen Weiss的老师,Sedgewick在普林斯顿大学有算法相关公开课。

算法概论
此书重原理,少实现,但对算法的理解高屋建瓴

五、略作参考


算法分析导论(2nd,Sedgewick) 偏重于分析
算法基础 打开算法之门( Thoms Cormen,CLRS的作者之一)科普读物
无处不在的算法 科普读物,关于实现较少,但涉及的内容较多,或许有惊喜(最大流部分为推送重贴标签算法,采用的例子为车流,而将溢出的流存储在车库中)
算法基础 C# Winform实现
算法详解 卷一 算法基础
啊哈,算法 Floyd-Warshall算法=插点法
算法设计与分析基础
算法设计
算法设计指南
算法设计手册

六、专业领域算法


计算几何 算法与应用
多维与度量数据结构基础
游戏编程精粹,部分章节有对空间型数据结构的描述

六、专业领域算法

MIT高级算法 David Karger(Karger最小割算法的发明人)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值