新手入门 | 算法书籍推荐

公众号设立以来,很多同学都在问如何入门、提高,以及有什么好的算法书籍可以学习。这周空闲时间我就大概在网上整理了一下,由于每个人的性格、学习习惯都不一样,不能针对个人情况来推荐,所以这里给的算法书籍仅做参考哦。

另外需要注意的是,这里给的书籍路线更偏向于普通意义的学习,而不仅仅是针对算法竞赛,公众号前期还是主要针对大学刚入门的同学,这样对于公众号来说,也能做到由浅入深,自成体系,我自己也是温故知新,后面会慢慢加深内容。

书籍语言一般是C或者C++语言,因此在学习下面这些书籍时,希望你能够已经掌握了C语言的基础知识,后面公众号也将陆续简单的补上C语言的学习和回顾,这样对于连C语言都不熟的萌新,也可以在这里多看多提问。

好了,让我们开始吧!

1

数据结构与算法分析:C语言描述(适合入门)

这本书相对于算法导论要简单一些,更适合入门。算法导论其实有比较强的理论性,看起来比较吃力。

《数据结构与算法分析:C语言描述》内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括。由于《数据结构与算法分析:C语言描述(原书第2版)》选材新颖,方法实用,题例丰富,取舍得当。《数据结构与算法分析:C语言描述》的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序。从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C程序和伪码例程。

2

算法设计与分析基础(适合入门)

作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法都能进行准确分类,从而使本书的读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。

3

算法引论:一种创造性方法(适合入门)

和普通的算法书不同,这本书从创造性的角度出发——如果说算法导论讲的是有哪些算法,那么算法引论讲的就是如何创造算法。结合前面的算法设计与分析基础,这本书把能解决的算法问题数量扩大了一个数量级。

4

算法竞赛 | 信息学奥赛一本通(算竞入门)

AlphaWA同学推荐的入门书籍,网上没有PDF版本,自己去淘宝买喽。

5

算法竞赛 | 算法竞赛进阶指南(算竞进阶)

新书没有PDF哦。

6

算法竞赛 | 刘汝佳算竞系列

经典系列。

《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。

7

编程原本(高级)

非常奇特的一本算法书籍。

本书提供了有关编程的一种与众不同的理解。其主旨是,实际的编程也应像其他科学和工程领域一样基于坚实的数学基础。本书展示了在实际编程语言(如C++)中实现的算法如何在最一般的数学背景中操作。例如,如何定义快速求幂算法,使之能使用任何可交换运算。使用抽象算法将能得到更高效、可靠、安全和经济的软件。

这不是一本很容易读的书,它也不是能提升你的编程技能的秘诀和技巧汇编。本书的价值是更根本性的,其终极目标是提升你对编程的洞察力。要想从中大获裨益,你需要从头到尾认真学习:阅读代码,证明引理,完成练习。到结束之时,你将看到如何把这里讨论的演绎方法应用到你的程序中,保证你做出的软件部件能一起工作,并表现出它们所应该表现的行为。

8

C语言接口与实现(高级)

强烈推荐,后面我也会慢慢看这本书(对于工程实践有着非常的意义)。

本书概念清晰、实例详尽,是一本有关设计、实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南。书中提供了大量实例,重在阐述如何用一种与语言无关的方法将接口设计实现独立出来,从而用一种基于接口的设计途径创建可重用的API。

本书是所有C语言程序员不可多得的好书,也是所有希望掌握可重用软件模块技术的人员的理想参考书,适合各层次的面向对象软件开发人员、系统分析员阅读。

9

算法导论(高级)

入门后必看。

O

计算机程序设计艺术

等你觉得自己快超神的时候用这本书清醒一下就好。本人太穷,就买了第一卷,至今只看到开头:P

大概就推荐这几本书吧,入门主要看前面一两本就好了,等看完了再看后面的,慢慢来。

我大学入门看的是严蔚敏的《数据结构》,感觉还可以,也算是比较经典的书籍。大学教材一般也没啥问题,重点是不管看什么算法书籍,一定要做课后习题,一定要做课后习题,一定要做课后习题!!

另外网上还有很多比较轻松的入门书籍,比如《啊哈算法》《大话算法》《算法图解》等等,但是个人认为如果不是感觉自己非常萌,还是不大推荐这种不是很系统严谨的书籍,看起来轻松了,但是会漏掉很多细节。对于一些比较深的知识,如果通过记住一个形象的画面去理解,以后再碰到类似问题时,就会产生依赖走向误区。这样对于思维的培养甚至可能是有害的。就比如说大学物理老师说爱因斯坦的相对论,我至今只记得一个简单比喻,那就是开心的时候时间过得快,难过的时候时间过得慢,这样每次想到相对论,就会尝试用这个比喻去理解,但是这是非常浅薄的。

另外还有一本Java的《算法 第4版》,如果不介意语言,也可以看看。

希望大家在学习的路上一帆风顺!!Fighting~

嗯,就酱。

温馨提示

如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我

原文发布于微信公众号 - ACM算法日常(acm-clan)

原文发表时间:2018-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

分析了数千个技术类面试,我们发现成功面试的背后有这样的规律...

原作者 Aline Lerner 编译 CDA 编译团队 本文为 CDA 数据分析师原创作品,转载需授权 准备技术类面试时需要注意些什么?也许你是刚毕业的大...

2159
来自专栏chenssy

Refresh your Java skills–面对Java学习过程中的一些迷茫

很多时候,我们学习Java,开始的时候觉得很容易,越到后面,内容越多,反而心烦气躁起来,学了忘,忘了学,依然会忘,总是摸不到窍门,再看到社会上和身边都是搞 Ja...

1162
来自专栏web前端教室

如何训练属于自己的编程思路 | 7月13日晚十点 微课文字版

image.png 编程思想,这四个字博客精深,学起来近乎永无止境。例如JAVA编程思想,用了砖头那么厚的一本书,就为了写明白这四个字。 ? 那编程思路呢?范...

2229
来自专栏大数据文摘

大数据下的统计学:问题优先而非解法优先

18010
来自专栏猿天地

面试过几百个程序员,我发现很多人都缺乏数据结构和算法知识

有人说,算法,先于计算机存在于世,比编程语言本身更为重要,语言只是工具,而算法才是灵魂。而程序就等于算法加数据结构。足以可见,想要在编程之路上走的更长远,数据结...

7551
来自专栏数据和云

学习Oracle的三重境界

最近在“恩墨微信大讲堂”仍然有很多朋友经常问起学习Oracle的方法,讲到学习之中的艰辛和困惑,这让我想起以前写过的一段文字,摘录在这里,供大家参考!这些文字是...

3449
来自专栏Crossin的编程教室

在知乎上学 Python - 入门篇

本文对知乎上关于Python入门方面的问答、文章、专栏做了一定的收集和整理,希望对各位Python学习者能有帮助,至少可以节省大家一点时间。

1741
来自专栏企鹅号快讯

英语基础不好,能学好编程吗?

英语基础不好,能学好编程吗?相信这是摆在很多学习编程但英语不好的人面前的困惑。 ? 那么英语到底影不影响对编程的学习呢,小编就来和你们说说。 如果你英文英语基础...

2406
来自专栏人工智能的秘密

机器人研发中使用的十大流行编程语言

  如果你在 Stack Overflow、Quora、Trossen、Reddit 或 Research Gate 等机器人专家或者社区论坛上提问“机器人最好...

3580
来自专栏互扯程序

Google在推动AI普及又往前迈了一步-Learn with Google AI

写在前面 2017年可以说是人工智能元年,不到一年的时间里人工智能概念与公司呈现出井喷式的发展,而社会上对与AI相关产业的人才需求也越来越大,不少人都希望掌握...

3123

扫码关注云+社区

领取腾讯云代金券