无处不在的算法---《算法神探》读后感

简介: 最近,我参加了CSDN举办的“从高考到程序员”征文活动,获赠了一本图书。在众多图书中,我选了《算法神探》,觉得这本书从名字上来看就比较有意思。

最近,我参加了CSDN举办的“从高考到程序员”征文活动,获赠了一本图书。在众多图书中,我选了《算法神探》,觉得这本书从名字上来看就比较有意思。拿到书之后,我分两次就把它读完了,可以毫不夸张地说,这是一本让你可以一口气就读完的计算机科普类图书。
这里写图片描述
首先说一下这本书的大致情况。本书是Google首席工程师Jeremy Kubica的作品(当然,这个人我也没听说过),翻译者是啊哈磊和李嘉浩。对于啊哈磊这个人,IT行业的人或许听说过,他写过一本书叫《啊哈!算法》,读者挺多的。《算法神探》这本书一共二百多页,29个章节,几乎每章都涉及到一种算法或数据结构。在跌宕起伏的故事情节中,我们可以领略到算法之美。

本书的故事情节大概是这样的:一个王国的警局总部遭遇了一起盗窃案,警长请一位被解雇的前探员Frank Runtime来将这个案子调查清楚;之所以要请一位被解雇的探员,是因为他是一位老练的私家侦探,并且非常擅长搜索;Frank Runtime利用他的搜索算法搜查走私的船、跟踪间谍、逃离监狱、开锁,并在最后揭发了一桩暗藏在深处的阴谋。这本书的每一章都是一个故事片段,同时会引入一个新的算法概念。为了加深大家对算法基础知识的了解,在每章的结尾处都会回顾并详细描述本章内出现的算法知识。

按照章节顺序,在本书中出现的算法或数据结构包括:穷举搜索、数组、字符串、二分搜索、广度优先搜索、深度优先搜索、栈、队列、并行算法、迭代加深、逆向索引、二叉搜索树、trie树、最佳优先搜索、优先队列、启发式搜索、堆。下面是对这些概念的简单解释:

穷举搜索:在整个搜索空间内尝试每一种可能性。
数组:一个数组就像一排箱子一样,每个箱子可以存储一条信息。
字符串:由一系列字符组成,这些字符可以是字母、数字、符号或空格。
二分搜索:其工作原理是不断地将搜索空间分成两半,并且把搜索空间限制在其中的一半中。
广度优先搜索:是一个按顺序依次尝试可能的搜索选项的算法,它每次都会选择尝试首先发现的但还没有尝试过的选项。
深度优先搜索:优先考虑最近新遇到的搜索状态,它会沿着一条路往下走,直到遇到目标状态,或者是一条死路。
栈:是一个后入先出的数据结构。
队列:是一个先入先出的数据结构。
并行算法:将一个问题分成数个小块,并同时在这些小块上执行计算,最后再将结果组合起来。
迭代加深:是深度优先搜索的一种改版,它限制了每一次搜索的深度,在第k轮搜索的时候,这个算法会执行一次深度限制为k的深度优先搜索。
逆向索引:它和书的索引类似,对于每一个值,逆向索引可以告诉你这个值在数据中的哪些地方出现过。
二叉搜索树:它是一种数据结构,它存储信息的方式和二叉搜索中使用信息的方式类似,树中的每一个节点存放一个值,并且每个节点最多有两个子节点,左子节点中存放的值都比当前节点中的值小,右子节点中存放的值都比当前节点中的值大。
trie树:是基于树的数据结构,用户可以很方便地通过某个字符串的前缀来搜索到目标字符串。
最佳优先搜索:是基于某种估值分数或者评价函数来选择接下来探索哪个状态的算法。
优先队列:它让你能插入数据,然后按特定的顺序删除数据。
启发式搜索:依据经验来帮助算法快速达到目标。
堆:是基于二叉搜索树的数据结构,它的每个节点与其子节点之间需要时刻维持有序关系;具体而言,对于最大堆,树中的任意一个节点的值都要大于(或等于)其下面的所有节点。

看完了这本书,我的体会有这几个:
第一,一本好的书就是要让其内容具备趣味性,让读者能够有继续读下去直到读完(甚至读好几遍)的理由。
第二,算法不光只是存在于计算机科学的研究和实践中,在我们的生活中,算法也是无处不在的。大到做一个人生中的重要决定,小到买菜购物,背后的指导思想都是算法。
第三,解决一个问题的方法往往不止一种,我们要根据实际情况选择合适的方法,但这个方法可能不是最优的。

《算法神探》,一本具备趣味性和知识性的计算机科普读物,推荐给大家阅读!


欢迎大家扫码加入我的小蜜圈:
这里写图片描述

目录
相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 算法
【深藏功与名】揭秘大模型背后的真相:为何它们常让人欢喜让人忧,又该如何破局?
【10月更文挑战第5天】近年来,随着计算资源和算法的提升,大规模深度学习模型在自然语言处理和计算机视觉领域取得了显著成就,但也引发了“大模型幻觉”的讨论。该现象指模型虽在特定任务上表现出色,但在实际应用中存在过度拟合和泛化能力差等问题。本文分析了大模型的底层逻辑,并通过PyTorch代码示例展示了如何使用L2正则化缓解过度拟合。此外,还介绍了通过数据增强提高模型泛化能力的方法。未来研究需进一步平衡模型复杂度与泛化能力,以实现更佳性能。
42 0
|
6月前
技术好文共享:蒙提霍尔悖论(三门问题)终极分析
技术好文共享:蒙提霍尔悖论(三门问题)终极分析
46 1
|
6月前
|
机器学习/深度学习 算法 搜索推荐
编程之舞:探索算法的优雅与力量
【6月更文挑战第10天】在软件的世界里,算法是构筑数字宇宙的基石。它们如同精心编排的舞蹈,每一个步骤都充满着逻辑的美感和解决问题的力量。本文将带领读者走进算法的世界,一起感受那些精妙绝伦的编程思想如何转化为解决现实问题的钥匙。
34 3
|
7月前
|
传感器 算法 机器人
斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
【2月更文挑战第26天】斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
79 5
斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
|
存储 算法 JavaScript
牛皮了!世界级调优大师以上古传承之魔法,彻底揭开GC的秘密
计算机的进步,特别是硬件的发展之快总是让我们感到惊讶。在这波不断向前涌动的洪流中,技术领域的浮沉也愈发激烈。本书涉及的垃圾回收(Garbage Collection, GC)与其说是理论,其实更偏向技术层面,然而它却有着令人吃惊的漫长历史。GC在计算机发展的激流中没有浮起,也没有沉下。直到1995年Java发布,因为其内藏GC,人们才开始意识到GC的作用。
我国研发成功世界首台拟态计算机 受自然界最为奇妙的“伪装大师”——拟态章鱼的启发
2013年9月21日,我国宣布自主研发的世界第一台拟态计算机在上海研制成功,并通过863专家组验收。拟态计算机由中国工程院院士邬江兴带领科研团队,在科技部和上海市政府联合支持下,联合国内外十余家单位,聚合500余名研究人员,历时6年研究而成。
563 0
我国研发成功世界首台拟态计算机 受自然界最为奇妙的“伪装大师”——拟态章鱼的启发
|
机器学习/深度学习 算法 搜索推荐
细数二十世纪最伟大的10大算法
导读:作者July总结了一篇关于计算方法的文章《细数二十世纪最伟大的10大算法》,此文只是本人对算法比较感兴趣,所以也做翻译,学习研究下。以下是文章内容: 发明十大算法的其中几位算法大师 一、1946 蒙特卡洛方法 [1946: John von Neumann, Stan Ulam, and N...
1385 0
《黑匣子思维》读后感
    最近花了大约两个星期的时间零零散散的阅读了一本叫作黑匣子思维的书,书的观点比较明确且归功于翻译者的水平,整本书看起来还算比较轻松的,按照正常的阅读速度我估计一个周末就可以阅读完了。
1398 0
|
算法
算法学习之路|马踏过河足
A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的 C 点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 CC 点上的马可以控制 9 个点(图中的 P1,P2⋯P8和 C)。卒不能通过对方马的控制点。
1681 0