商品参数
|
| 书名:啊哈!算法 | | ISBN:9787115354594 | 定价:45.00元 | 装帧:平装 | 是否套装书:否 | | 出版时间:2014年08月 | 页数:246页 | 开本:16开 | 单色/彩色:单色 |
|
|
| 啊哈!去中科院玩单片机 呦吼!在微软亚洲研究院写爬虫 哒哒!写一本开开心心的算法书 你一定能看懂的算法书! 奥赛金*教练、微软亚洲研究院小伙伴啊哈磊埋头苦干的作品! 没有枯燥的描述,没有难懂的公式 一切以实际应用为出发点 通过幽默的语言配以可爱的插图 在轻松愉悦中掌握算法精髓 |
|
|
| 啊哈磊 著 纪磊 网名啊哈磊。武汉大学毕业。 曾在中科院玩过单片机(中国科学院访问学者); 武汉大学历史上*一位以本科生身份加入MSRA(微软亚洲研究院)的小伙伴,在机器学习组担任研究员,从事搜索引擎方面的研究; 发表国际会议论文一篇(IEEE); 全国青少年信息学奥林匹克金*教练。 非常喜欢小朋友,每天都过得都非常开心。 到于为什么叫“啊哈磊”,因为我觉得这是一个很喜庆的名字。 |
|
|
| 《啊哈!算法》是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。 《啊哈!算法》中涉及的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种*短路径算法、两种*小生成树算法、割点与割边算法、二分图的*大匹配算法等。 |
|
|
| *1章 一大波数正在靠近——排序 1 *1节 *快*简单的排序——桶排序 2 *2节 邻居好说话——冒泡排序 7 第3节 *常用的排序——快速排序 12 第4节 小哼买书 20 *2章 栈、队列、链表 25 *1节 解密QQ号——队列 26 *2节 解密回文——栈 32 第3节 纸牌游戏——小猫钓鱼 35 第4节 链表 44 第5节 模拟链表 54 第3章 枚举!很暴力 57 *1节 坑爹的奥数 58 *2节 炸弹人 61 第3节 火柴棍等式 67 第4节 数的全排列 70 第4章 *能的搜索 72 *1节 不撞南墙不回头——深度优先搜索 73 *2节 解救小哈 81 第3节 层层递进——广度优先搜索 88 第4节 再解炸弹人 95 第5节 宝岛探险 106 第6节 水管工游戏 117 第5章 图的遍历 128 *1节 深度和广度优先究@是指啥 129 *2节 城市地图——图的深度优先遍历 136 第3节 *少转机——图的广度优先遍历 142 第6章 *短路径 147 *1节 只有五行的算法——Floyd-Warshall 148 *2节 Dijkstra算法——通过边实现松弛 155 第3节 Bellman-Ford——解决负权边 163 第4节 Bellman-Ford的队列优化 171 第5节 *短路径算法对比分析 177 第7章 神奇的树 178 *1节 开启“树”之旅 179 *2节 二叉树 183 第3节 堆——神奇的优先队列 185 第4节 擒贼先擒王——并查集 200 第8章 更多精彩算法 211 *1节 镖局运镖——图的*小生成树 212 *2节 再谈*小生成树 219 第3节 重要城市——图的割点 229 第4节 关键道路——图的割边 234 第5节 我要做月老——二分图*大匹配 237 第9章 还能更好吗——微软亚洲研究院面试 243 |
|
内容介绍
《啊哈!算法》是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。 《啊哈!算法》中涉及的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种路径算法、两种生成树算法、割点与割边算法、二分图的匹配算法等。
作者介绍
纪磊,网名啊哈磊。 曾在中科院玩过单片机。武汉大学历史上以本科生身份加入MSRA(微软亚洲研究院)的小伙伴,在机器学习组从事搜索引擎方面的研究。 发表国际会议论文一篇(IEEE)。 全国青少年信息学奥林匹克教练。 超萌超简洁的C语言编译器——“啊哈C编译器”作者。 2013年,我的著作,有趣的编程科普书《啊哈C!》出版。 非常喜欢小朋友,每天都过得都非常开心。 到于为什么叫“啊哈磊”,因为我觉得这是一个很喜庆的名字。
关联推荐
算法导论学习指南,ACM和信息学竞赛备考宝典!一本轻松玩转算法和数据结构的超萌书。奥赛教练、微软亚洲研究院小伙伴啊哈磊埋头苦干的作品!
目录
目 录
第 1章 一大波数正在靠近——排序 1
第 1节 **快**简单的排序——桶排序 2
第 2节 邻居好说话——冒泡排序 7
第3节 **常用的排序——快速排序 12
第4节 小哼买书 20
第 2章 栈、队列、链表 25
第 1节 解密QQ号——队列 26
第 2节 解密回文——栈 32
第3节 纸牌游戏——小猫钓鱼 35
第4节 链表 44
第5节 模拟链表 54
第3章 枚举!很暴力 57
第 1节 坑爹的奥数 58
第 2节 炸弹人 61
第3节 火柴棍等式 67
第4节 数的全排列 70
第4章 万 能的搜索 72
第 1节 不撞南墙不回头——深度优先搜索 73
第 2节 解救小哈 81
第3节 层层递进——广度优先搜索 88
第4节 再解炸弹人 95
第5节 宝岛探险 106
第6节 水管工游戏 117
第5章 图的遍历 128
第 1节 深度和广度优先是指啥 129
第 2节 城市地图——图的深度优先遍历 136
第3节 **少转机——图的广度优先遍历 142
第6章 **短路径 147
第 1节 只有五行的算法——Floyd-Warshall 148
第 2节 Dijkstra算法——通过边实现松弛 155
第3节 Bellman-Ford——解决负权边 163
第4节 Bellman-Ford的队列优化 171
第5节 **短路径算法对比分析 177
第7章 神奇的树 178
第 1节 开启“树”之旅 179
第 2节 二叉树 183
第3节 堆——神奇的优先队列 185
第4节 擒贼先擒王——并查集 200
第8章 更多精彩算法 211
第 1节 镖局运镖——图的**小生成树 212
第 2节 再谈**小生成树 219
第3节 重要城市——图的割点 229
第4节 关键道路——图的割边 234
第5节 我要做月老——二分图**大匹配 237
第9章 还能更好吗——微软亚洲研究院面试 243
《奇妙的计算世界:探索数字的逻辑与智慧》 在这本书中,我们将踏上一段令人着迷的旅程,深入探索一个由数字、逻辑和精巧结构构成的奇妙世界。我们不再局限于枯燥的数学公式或抽象的理论,而是将目光投向那些驱动我们现代生活,却常常被我们忽略的计算原理。这本书将以一种生动、有趣且富有启发性的方式,揭示隐藏在计算机程序、网络通信、甚至我们日常生活中的那些“看不见”的智慧。 你是否曾经好奇,一部电影是如何在网络上瞬间传输的?那些复杂的视频游戏背后,又是怎样的逻辑在支撑着虚拟世界的运转?你是否想过,搜索引擎如何能在海量的信息中迅速找到你想要的内容?又或者,你是否曾为那些能够解决复杂问题的精巧算法而惊叹?《奇妙的计算世界》将一一为你解答这些疑问,并引导你走进一个充满可能性的计算领域。 第一部分:逻辑的基石——构筑计算的语言 我们将从最基础的层面开始,建立起我们理解后续内容的逻辑基石。首先,我们将探讨“信息”的本质。信息并非总是以文字或图像的形式存在,它更是一种抽象的概念,可以通过二进制的“0”和“1”来表示。我们将学习二进制是如何成为计算机的通用语言,以及如何通过逻辑门(如与门、或门、非门)来构建更复杂的逻辑电路。你会发现,看似简单的开关组合,竟然能够执行加减乘除等算术运算,甚至能够做出判断和决策。 接下来,我们将引入“算法”这一核心概念。算法不仅仅是数学家的事情,它更是解决问题的步骤和方法的集合。我们将通过一些生活中常见的例子,来理解算法的定义、特性和设计思想。例如,如何在茫茫人海中找到一个人?如何规划一条最短的回家路线?这些看似日常的问题,都可以用清晰的算法来描述。我们将学习如何将一个复杂的问题分解成更小的、可管理的子问题,并为每个子问题设计出有效的解决方案。 我们还将接触到一些基础的数据结构,它们是组织和存储信息的重要方式。想象一下,如果你需要管理一个图书馆的书籍,你会如何摆放它们以便快速查找?是按照书名、作者还是分类?不同的组织方式会影响你查找的效率。我们将介绍一些基本的数据结构,比如数组、链表、栈和队列,并理解它们各自的优缺点以及在不同场景下的应用。了解这些结构,就像拥有了组织信息世界的“工具箱”。 第二部分:数据的魔法——高效处理与智能分析 有了逻辑的基石和数据结构,我们就可以开始探索如何高效地处理和分析数据了。这一部分将是本书的重点,我们将深入介绍各种被广泛应用的算法。 搜索的艺术: 我们会先从搜索算法开始。无论是查找一个单词在字典里的位置,还是在庞大的数据库中找到特定的记录,高效的搜索都至关重要。我们将学习“顺序查找”这种直观的方法,并理解它的局限性。随后,我们将进入更高效的领域,学习“二分查找”,理解它如何在有序的数据集中以惊人的速度定位目标。你将惊叹于只需几次比较,就能在百万级的数据中找到所需信息。 排序的智慧: 想象一下,一份考试成绩单需要按分数高低排序,或者一个音乐播放列表需要按字母顺序排列。排序算法就是解决这些问题的关键。我们将学习各种排序算法,从简单的“冒泡排序”、“选择排序”,到更高效的“快速排序”和“归并排序”。我们将分析它们的实现原理,比较它们的运行效率,并理解为什么在不同的情况下,选择不同的排序算法会产生巨大的差异。 图的魅力: 在我们的生活中,存在着无数由点和线连接而成的网络。比如城市之间的道路网络、社交网络中的好友关系、甚至是互联网本身的连接结构。我们将学习图论的基础知识,理解图的表示方法,并探索解决图相关问题的算法。例如,如何找到两点之间的最短路径?如何在一个网络中遍历所有节点?我们将接触到“广度优先搜索”和“深度优先搜索”,它们是解决图问题的通用利器。 字符串的奥秘: 文本是我们获取信息的重要渠道。搜索、匹配、替换等操作在文本处理中无处不在。我们将了解一些经典的字符串匹配算法,比如朴素匹配算法,并进一步探索更高效的算法,如“KMP算法”。你将理解这些算法如何巧妙地避免重复比较,从而极大地提升文本处理的速度。 动态规划的精妙: 当我们面对一个可以分解成重叠子问题的问题时,动态规划就展现出了它的强大威力。它通过记录子问题的解,避免重复计算,从而以一种“自底向上”或“自顶向下”的方式,高效地解决复杂问题。我们将通过一些经典的例子,如斐波那契数列、背包问题等,来理解动态规划的思想和实现方法,体会它如何将“分而治之”的思想推向极致。 贪心算法的简洁: 有时候,最简单的选择策略也能导向最优解。贪心算法就是这样一种思想,它在每一步都做出当前看起来最优的选择,并期望最终能得到全局最优解。我们将学习贪心算法的应用场景,如活动安排问题、最小生成树问题等,并理解它适用的条件和局限性。 第三部分:计算的拓展——思维的边界与创新的驱动 在掌握了基础的计算原理和核心算法后,我们将把目光投向更广阔的计算领域,思考计算思维如何拓展我们的认知边界,并驱动着创新。 数学与计算的交融: 计算并非独立于数学而存在,它们是紧密相连的。我们将探讨一些与计算密切相关的数学概念,比如数论、概率论、线性代数等,并理解它们如何在算法的设计和分析中发挥作用。了解这些数学工具,将为我们解决更复杂的问题提供更强大的支撑。 计算的边界与效率: 并不是所有问题都能被计算机高效地解决。我们将简要触及“计算复杂性”的概念,了解“P类问题”和“NP类问题”的区别,以及为什么有些问题被称为“难题”。这有助于我们理解计算机能力的局限性,并激发我们寻找更优解决方案的动力。 算法的实际应用: 我们将通过一些生动有趣的实际案例,展示算法如何在现实世界中发挥作用。从搜索引擎的背后原理,到社交网络的推荐系统,再到金融领域的风险评估,甚至是生物信息学中的基因测序,你都会看到算法的身影。这些案例将让你深刻体会到计算思维在解决现实问题中的价值。 思维的训练: 本书的最终目标,不仅仅是让你了解各种算法,更是希望能够训练你的计算思维。计算思维是一种逻辑严谨、条理清晰、善于分解问题、并能抽象出通用解决方案的思维模式。它是一种解决问题的通用能力,无论你从事什么职业,都能从中获益。通过学习和实践书中的内容,你将逐渐培养出这种宝贵的思维方式。 《奇妙的计算世界》 是一本献给所有对未知充满好奇,对逻辑之美充满向往的读者的书。它将带你告别对“算法”的神秘感,让你看到它背后蕴含的深刻智慧和解决问题的强大力量。无论你是学生、工程师、还是对科技充满兴趣的普通读者,都能在这本书中找到属于自己的乐趣和启发,开启属于你的奇妙计算之旅。
这本书刚拿到手,就被它的名字《啊哈!算法》吸引住了。我觉得“啊哈”这个词,本身就带着一种发现的喜悦,一种解开心结的释然。我一直觉得,学习知识的过程,最让人兴奋的莫过于“顿悟”的瞬间,那种感觉就像是突然点亮了内心的灯,看到了之前从未察觉的风景。我希望这本书能够带给我这种“啊哈”时刻,它不应该只是简单地罗列知识点,而是能够引导我去思考,去探索,去最终获得那种豁然开朗的满足感。我对这本书的期待,在于它能否用一种充满智慧和趣味的方式,将那些看似高深的概念,变得生动有趣,让我觉得学习本身就是一件充满乐趣的事情。我希望它能成为一本能够点燃我求知欲,并让我对某个领域产生浓厚兴趣的书。