专栏首页ACM算法日常新手入门 | 算法书籍推荐

新手入门 | 算法书籍推荐

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

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

书籍语言一般是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),作者:dansen

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hello World!

    这里每天会定期更新一些ACM算法网站的题目,主要目的是为了能够将ACM里面涉及到的算法和技巧通过易于理解的方式进行讲解。

    ACM算法日常
  • 想去硅谷、BAT工作?算法面试通关攻略在这里

    一整套视频还是很有价值的,我这几天也看了最新的几集,对于新手比较友好,对于有一定经验的可能觉得简单。

    ACM算法日常
  • 如何应对“智力型”的算法面试题?

    “给你a、b两个文件,他们各存放50亿条URL,其中每条URL各占用64字节,内存限制是4G,请你编写代码找出a、b文件中相同的URL”。这是某家大公司在201...

    ACM算法日常
  • 讨厌算法的程序员 | 前言

    这个主题是写给自己的,假如你刚好也和我一样讨厌算法,那也是写给你的。我的主要参考书目是《算法导论》第3版中文版,自己先琢磨明白一个算法,然后再按我的理解写出来。...

    用户1332428
  • 讨厌算法的程序员 0 - 前言

    这个主题是写给自己的,假如你刚好也和我一样讨厌算法,那也是写给你的。我的主要参考书目是《算法导论》第3版中文版,自己先琢磨明白一个算法,然后再按我的理解写出来...

    袁承兴
  • 漫画算法等精选文章目录

    1、漫画算法 漫画算法:最小栈的实现 漫画算法:判断 2 的乘方 漫画算法:找出缺失的整数 漫画算法:辗转相除法是什么鬼? 漫画算法:什么是动态规划?(整合版...

    朱晓霞
  • 数平精准推荐 | OCR技术之系统篇

    腾讯技术工程官方号
  • 我眼中的数据挖掘算法

    数据挖掘算法可以解决生活中很多问题,例如垃圾邮件的标记识别、欺诈交易用户的识别、品牌档次的判断定位、文章是否真的出自某位作家之手以及癌症细胞的判定等等,灵活的...

    许卉
  • 主宰这个世界的10大算法

    出自linux中文社区 链接:https://linux.cn/article-3125-1.html 什么是算法? 简而言之,任何定义明确的计算步骤都可称为算...

    智能算法
  • 同样是罪犯,36岁比19岁危害小,这是算法的逻辑?

    我们可以看到它们在世间发挥作用,我们知道它们正塑造我们周遭的各种事物,但我们大多数人并不知道算法是什么——或者算法如何影响我们。

    用户1737318

扫码关注云+社区

领取腾讯云代金券