读后感
因为自己的编程基础不是太好,在图书馆查看了一些算法书之后发现对于我来说都很晦涩难懂,所以我就上网查了一下浅显易懂的算法书都有哪些,于是就找到了这本《算法图解——像小说一样有趣的算法入门书》。
一开始我就被这个书名吸引到了,像小说一样,那应该很有趣。翻开之后,第一章算法简介。一开始讲了二分算法,他用很直观的漫画的形式讲解了二分算法的原理,就很直观,一下子就知道了二分算法的内涵。
而且漫画画的也很可爱,一下子就提起了我的兴趣。
作者给出了猜数字的两种算法——简单查找和二分查找。一百个数中的一个数,以最少的次数猜到这个数字。每次猜后都会提示大了或者小了。假设如果从1依次往上猜测,最坏的情况要猜一百次!而二分法从50开始,然后继续猜测剩下数字中的中间数,这样每次都会排除掉余下数字的一半,不管那个数是多少,最重都能在7次以内猜到,因为每次猜测都能排除很多数。当数据较小时,这两种方法的差距可能较小,但是当数据增加到四亿个时,简单查找就需要猜四亿次,而二分查找就最多只需要32次,这个差距就立即显示出来了。
假设检查一个元素需要1毫秒,使用简单查找时检查100个元素需要100毫秒,而使用二分查找需要大约7毫秒。二分查找的速度大约是简单查找的15倍。当元素数增加到十亿个时,二分查找需要30毫秒,简单查找需要30*15=450毫秒,几百毫秒的差距,也不多呀,但事实真的是这样嘛?其实当有十亿个元素时,查找时间竟然是11天!为什么会这样呢?因为随着元素个数的增加,简单查找需要的额外时间很多,而二分查找需要的额外时间并不多。所以随着元素个数的增加,二分查找的速度会比简单查找越来越快。这也引出了大O这个概念。大O表示了算法有多快,指出算法运行时间的增速。
作者就是用简单的语言和诙谐幽默 的漫画展示了算法的各种基本概念。对于初学者的我来说,就很有趣味性,不会感到枯燥,当了解了算法的基本知识和基本概念,再去看那些晦涩难懂的算法书时就会轻松很多。这本书虽然很少,而且知识点也很浅显,但是他是一本好书,看懂了就会有很多的收获。