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

2521人阅读 评论(0) 收藏 举报
分类:

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

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

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

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

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

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


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

查看评论

数据结构和算法

本次课主要是介绍在游戏开发中经常使用的数据结构,例如数组,链表,栈,队列,二叉树,递归等重要知识点讲解以及将它们里灵活的运用到算法里面。
  • 2015年01月29日 08:45

《算法神探》

  • 2017年06月07日 21:26
  • 10.55MB
  • 下载

PDF-算法神探

  • 2017年06月28日 17:07
  • 10.55MB
  • 下载

《算法神探》笔记

《算法神探》笔记 1      搜索问题:在可能的空间范围内,找到一个特定值。 2      一个好的算法取决于发现数据结构中的结果并善加利用。 3      高效的算法在于有用的信息。...
  • zhujianing1993
  • zhujianing1993
  • 2017-03-19 04:14:13
  • 2551

算法的简单归类–看完这些顿时感觉算法不再那么神秘了

http://buluo.qq.com/p/detail.html?bid=102594&pid=9104210-1472808015 无论是机器学习、模式识别、数据挖掘、统...
  • xuxiatian
  • xuxiatian
  • 2016-09-26 12:46:09
  • 1102

《算法神探》一口气就能看完的神奇算法书

  • 2017年09月13日 18:04
  • 10.55MB
  • 下载

经典算法

本文专注于 初衷:博主看到网上有很多人贴出各种OJ上的AC代码,很多都会标注上“递归”两字 我刚开始学习递归算法和分治法的时候,苦于没有人写出递归算法和分治法的详细解析,很难系统地学习 ...
  • guhenghong
  • guhenghong
  • 2014-04-08 16:26:03
  • 871

《算法神探》高清完整版电子书。电脑上下载个calibre软件看这本电子书

  • 2017年11月02日 20:10
  • 9.41MB
  • 下载

《算法图解》读书笔记

一、算法简介 这的确是一本像小说一样有趣的算法入门书,讲的是一个事儿,一个理儿,没有数学公式,不像《算法设计与分析基础》那样是一本理论书。 这里记录的只是读书过程中对重要结论和关键性质的记录,关于各个...
  • zhuanzhe117
  • zhuanzhe117
  • 2017-05-31 17:06:55
  • 865

算法的一些读后感

今天读了一些文章,讲的是算法的学习。 文中有一句话我记下来, 算法是很多的,数据结构相对较少,算法都是基于某些数据结构进行操作。所以将数据结构学的通透了,在多做一些题,可能会好一点。 学习...
  • u011377803
  • u011377803
  • 2016-03-21 18:06:28
  • 243
    博客已搬至微信公众号
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 149万+
    积分: 2万+
    排名: 358
    博客专栏
    最新评论