导航:首页 > 源码编译 > 算法第四版看不懂

算法第四版看不懂

发布时间:2023-03-13 22:43:19

‘壹’ 算法不扎实的程序员,每一个都很慌

初学者经常问这样的问题,然而这些其实是错误的问题。

对于初学者而言,你最应该优先考虑的是,哪些东西构成了程序的基础?

最经典的一句话: 程序 = 数据结构 + 算法

如果说编程语言是程序的血肉,那么算法就是程序的灵魂。

人不能没有血肉之躯,但是没有灵魂的人依然只是一个死人。

不能单纯依靠算法衡量一个程序员的好坏,但是面试的时候考算法绝对是简单高效的筛选手段。近些年大厂的面试几乎必考算法也是这个原因。每一个算法学的不扎实的程序员,在面试的时候都很慌。

下面这些书籍应该是算法方面最常见的经典书籍。我有幸都读过,有些读完了,有些半途而废,不过基本上也都算是熟悉。顺序上由易到难,从薄到厚,每本书下面我会简单的介绍一番,希望能对你的学习有所帮助。

首先是两本算法入门书籍,也可以当做算法读物:

《啊哈!算法》

用他的自我介绍的来讲:“这不过是一本有趣的算法书而已,和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。”

图文并茂,而且画风有趣,适合新手入门,但是代码是C的,看着比较累,文字也略显冗长。

图是非常棒的,启蒙用,非教科书

《算法图解》

和《啊哈》类似,他的介绍是:“像小说一样有趣的算法入门书。”

书里面讲的很好,python代码也很容易读懂,比之《啊哈!算法》,书中的例子没有那么有趣,但是图很清晰,文字和代码不冗杂。

缺点同样是非教科书,非常浅显,三四个小时就看完了。有一种刚刚热身的感觉。

接下来这几本都是最常见的书了:

《数据结构与算法分析C语言描述》

这本书的作者几乎不浪费笔墨在一些简单的地方。书很薄,但是覆盖面很广很深,作者实在是非常厉害。

不过反过来说,就是有些地方讲的语焉不详……

这本书还有java语言版本的,但是相比之下C的更好一些。

挺好的一本书。

还有一点是翻译不是很给力,好多人都没坚持看完。

《数据结构与算法Python语言实现》

英文版评分非常高,中文版评分非常低……

据说是也翻译的不好。另外就是本书自身错误也不少……几版过后依然很多没有改过来。

书中数学证明和介绍比较简单。因为采用Python语言的原因,比较易读。

浅显易懂,内容上循序渐进,环环相扣。相比于上一本,我会更推荐一些。厚度也不算厚。

《数据结构与算法 Python语言描述》

北大教授裘宗燕的书,这本书前面写的挺好的,尤其是在面向对象还有ADT等思想的阐述,都很不错。

但是读到后来给我一种虎头蛇尾的感觉,前面气势如虹绪论就写了很长,最后三章感觉有点草草收尾的意思。就像编辑在催稿,而作者很忙的样子……

另外就是这本书的编排顺序我个人也不是特别喜欢。

接下来是两本大部头,都是非常厚的书。

他们最大的特点就是:出现率远大于看完率

《算法导论》

算法书中的权威,MIT的6.046J就是按照这个来讲的。

公认最好的算法书,组织结构合理,内容详尽。引导读者从思维方式上对算法进行领悟。

书中对算法的数学结构进行了详尽的阐述。有非常多的数学证明。

这本书我说不出什么缺点,只能说有些内容是因为我还没到大牛的境界,暂时还无法体会理解。

我个人的观点是:不要纠结于详细的伪代码,不用纠结于连篇累牍的讲解。体会其中算法的精髓就好。

《算法》第四版

如果说,《算法导论》是学术上最好书,那这本应该是实际应用最好的书。

它对数学的要求比《算法导论》低很多,摒弃了算法的证明。

书中具体给出了每位程序员应知应会的50个算法,深入浅出,大量图解。非常棒。

java基础的话你能撸出来Hello World基本上就可以开始看这本书了,这本书最大的不友好之处在于它的第一章非常长,没看过的人又不知道哪里可以跳过。

这本书后面的翻译感觉不如前边了,不知道是换人了还是DDL了……

翻开书就会看到很多的图,配套作者在coursera上面的课程学的话事半功倍!

接下来的几本我看的比较少,简单介绍一下,希望大家自己去发现和了解,不要漏下这些好书:

《编程珠玑》

很薄一本啊,但是我放在那还没看完……

这本书被称为: 历史 上最伟大的计算机科学着作之一

融深邃思想、实战技术与趣味轶事于一炉的奇书。

内容不深,但是不是一个知识点一个知识点的给你讲解算法原理的。

这本书的核心思想是让你了解如何正确选择和高效地实现算法。书中还有一些趣闻轶事,看着倒是很有意思~

有兴趣的同学可以看看~

《算法竞赛入门经典》系列

算法竞赛入门经典书,ACM必备书籍吧算是。书中题目对于竞赛来说比较简单,但是对于一般我们平时工程来说偏难。语言用的是C/C++,请好好做例题好好做作业,读书的时候好好思考和复习~

反正我是没读过,捂脸……

《剑指Offer》

这个书很有意思,对于在校生来说我个人觉得是必看的书。没有任何工作经验的同学在面试的时候真的会被问懵的。这本书可以让你了解如何应付考官日常问题,在解答面试问题的时候,书中很多方法和思路会让考官觉得你思考的很全面,给你加不少分。

我面试的时候也曾快速扫过一遍这本书,让我在回答问题的时候条理更清晰。书中代码是C的,emmm,于是代码部分我就没太看……

《用Python解决数据结构与算法问题》

最后给大家推荐一本在线的 免费 的算法书。

https://facert.gitbooks.io/python-data-structure-cn/

不是大部头,也不是读物,新手入门足够用,书中介绍了大多数日常需要的算法,并且讲的比较浅显~转行的新手基本可以通过这本书来快速掌握常用基本算法了~

反正免费,是否适合自己看两页也就get了~

如果需要PDF版,可以在“程序员必修课”公众号后台回复:“Python算法书”获取。

‘贰’ 掌握了这些核心算法,才能说自己是程序员

1、时间复杂度

2、空间复杂度

一般最先接触的就是时间复杂度和空间复杂度的学习了,这两个概念以及如何计算,是必须学的,也是必须最先学的,主要有最大复杂度、平均复杂度等,直接通过博客搜索学习即可。

不用说,链表、列表必须,不过重点是链表。

特别是优先队列,再刷题的时候,还是经常用到的,队列与栈,是最基本的数据结构,必学。可以通过博客来学习。相关文章:

树状数组其实我也没学过,,,,

对于十大算法的学习,假如你不大懂的话,那么我还是挺推荐你去看书的,因为看了书,你可能不仅仅知道这个算法怎么写,还能知道他是怎么来的。推荐书籍是《算法第四版》,这本书讲的很详细,而且配了很多图演示,还是挺好懂的。

图还是比较难的,不过我觉得图涉及到的挺多算法都是挺实用的,例如最短路径的计算等

这方便的只是都是一些算法相关的,我觉得如果可以,都学一下。像贪心算法的思想,就必须学的了。建议通过刷题来学习,leetcode 直接专题刷。

我觉得动态规划是最难的一个算法思想了,记得当初第一次接触动态规划的时候,是看01背包问题的,看了好久都不大懂,懵懵懂懂,后面懂了基本思想,可是做题下不了手,但是看的懂答案。一气之下,再leetcdoe专题连续刷了几十道,才掌握了动态规划的套路,也有了自己的一套模板。不过说实话,动态规划,是考的真他妈多,学习算法、刷题,一定要掌握。这里建议先了解动态规划是什么,之后 leetcode 专题刷,反正就一般上面这几种题型。后面有时间,我也写一下我学到的套路,有点类似于我之前写的递归那样,算是一种经验。也就是我做题时的模板,不过感觉得写七八个小时,,,,,有时间就写。

对于上面设计到的算法,我都提供了感觉还不错的文章,建议大家收藏,然后可以利用零碎的时间进行阅读,有些人可能会觉得上面的算法太多,说实话,我觉得不多,特别是对于在校生的,上面涉及到的算法可以不用很懂,但至少得了解。至于书籍的话,如果你连基本数据结构都还不懂的,建议看《数据结构与算法》相关书籍,例如《大话数据结构》、《数据结构与算法分析》。如果你有一定的基础,例如知道链表,栈,队列,那么可以看《算法第四版》,不过这本书是用 Java 实现的,不过我觉得你只要学过 C,那么可以看的懂。

‘叁’ C程序设计谭浩强版本的第四版和第三版有什么区别

一、指代不同

1、C程序设计谭浩强版本的第四版:是2010年清华大学出版社出版的图书,作者是谭浩强。

2、C程序设计谭浩强版本的第三版:被普遍认为是学习C语言的好教材,并被全国大多数高校选用。

二、特点不同

1、C程序设计谭浩强版本的第四版:内容先进,体系合理,概念清晰,讲解详尽,降低台阶,分散难点,例题丰富,深入浅出,文字流畅,通俗易懂,是初学者学习C程序设计的理想教材,可作为高等学校各专业的正式教材。

2、C程序设计谭浩强版本的第三版:累计发行了700多万册,创同类书的全国最高记录,是学习C语言的主流用书。


三、影响不同

1、C程序设计谭浩强版本的第四版:该书被大多数高校用作C语言学习的教材,更正了第三版中的不足。

2、C程序设计谭浩强版本的第三版:曾荣获原电子工业部优秀教材一等奖、高校出版社优秀畅销书特等奖、全国高等院校计算机基础教育研究会优秀教材一等奖。

‘肆’ 算法 第四版 这本书有配套的习题答案吗

1. "我想学好基础的数据结构和算法! "
不多说,有这心就往下看。

2. "我应该准备些什么? "
a. 这本橙书: 《算法 第四版》
--亚马逊中文版: amazon.cn 的页面
--线上资源: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
b. 注册Coursera, 依次加入这2门课: <算法, 第一部分> <算法, 第二部分>
Part 1:
Part 2:
如果没开课, 就先标记, 这样开课时会通过邮箱提示你.

3. "我应该做些什么? "
先熟读书内1.1和1.2, 最好把课后习题都做一做. 网站上开课后(即使已经开课几周了, 没关系), 跟住上课内容: 课本知识 + 视频内容 + 课件重点+ Exercises (独立完成且满分) + Programming Assignments (独立完成且尽量满分) + Job Interview Questions. 从Part 1到Part 2, 跟住, 跟住, 跟住!

关于做书后练习题,参见:
算法 第四版(algorithms 4th edition ) 这本书有配套的习题答案吗看 - 孟祥丰的回答

4. "我学完了呢!"
再去跟隔壁斯坦福的算法公开课, 他还给证书! 因为参考书籍基本上就是是《CLRS》, 所以也就是强迫自己去仔细研读算法导论.
---课程名称:
<算法设计与分析, 第一部分>
<算法设计与分析, 第二部分>
---课程地址
Part 1:
Part 2: 2

‘伍’ 算法中红黑树的删除方法问题.

了无适俗韵真可与晤语

阅读全文

与算法第四版看不懂相关的资料

热点内容
山东济南生产服务器云主机 浏览:310
算法员跳槽四年 浏览:730
秦九昭算法v0怎么求 浏览:384
斗鱼java 浏览:896
程序员对老师的感谢 浏览:29
什么app能查看银行卡照片 浏览:24
win7pdf虚拟打印 浏览:332
程序员喜欢的女生条件 浏览:123
阿里云服务器ip搭建教程 浏览:85
解压和拉伸这一动画的原理是什么 浏览:740
tbc战士的命令怒吼 浏览:481
idea快捷键看源码 浏览:976
手机碎屏解压工具 浏览:245
jsonrpcphp使用 浏览:566
网上求职系统源码 浏览:699
pdf数字不显示 浏览:890
convertwordtopdf 浏览:253
程序编译基本单位 浏览:23
python分析图片角度 浏览:64
阿里云服务器能复制数据吗 浏览:562