图解Python算法

普通程序员,不学算法,也可以成为大神吗? 对不起,这个,绝对不可以。 可是算法好难啊~~看两页书就想

普通程序员,不学算法,也可以成为大神吗?

对不起,这个,绝对不可以。

可是算法好难啊~~看两页书就想睡觉……

所以就不学了吗?就一直当普通程序员吗?

如果有一本算法书,看着很轻松……又有代码示例……又有讲解……

怎么会有那样的书呢?

哎呀,最好学了算法人还能变得很萌……

这个……要求是不是太高了呀?

哈哈,有的书真的能满足所有这些要求哦!

来,看看这本书有多可爱——

二分查找萌一个

1~100,阿喵同学选了个数,记在心里

让鼻子同学猜

如果像下面这样猜……

鼻子同学很有可能失去阿喵同学

因为跟他一起玩耍实在是……

太无聊了!

但是,如果这样猜……

鼻子同学很快就猜对了

阿喵同学会觉得鼻子同学很聪明

而且好像很懂她哦~

把一列元素拦腰一截,再拦腰一截,再拦腰一截……

这个就是二分查找咯~

Python代码来一发——

看不清?点击代码,看大图

递归算法萌一个

奶奶有个大盒子

可以上锁的那种

打开大盒子,里面有很多小盒子

奶奶说,大盒子的钥匙就在某个小盒子里

这些小盒子里还有更小的盒子

……

你要如何找到钥匙呢?

你可以这样:

也可以这样:

第一种方法好像比较聪明

但是第二种方法更简单

第一种方法叫做简单查找,第二种方法叫做递归。

在编程中,递归非常常见,事实上,很多算法都用到了递归思想。

不过呢,也有人觉得递归很麻烦。

你怎么看?

简单查找是这样的——

递归是这样的——

看不清?点击代码,看大图

背包问题萌一个

有一个贼,带着一个包……

能装4磅重的东西

他可以偷的东西只有以下几件

请问,

他拿走哪几样比较合算?

东西反正也不多,

要不然就一轮一轮地试?

这次当然没问题……

可是贼也不能保证

每次只想偷这么点东西

花那么多时间试来试去的

不怕被人发现吗?

说得简单一点,背包问题就是——东西你都想要,但是不能都要,那么怎样尽量多拿点。

而且要快!要快!要快!重要的事情说三遍!

背包问题有很多种解决办法,每一种都对应一种算法。把这个问题想清楚了,你至少可以成为半个算法高手。

更萌的在书里,不给你们看!

我才不会告诉你们,这些连环画一样的算法解析都出自好玩又涨知识的《算法图解》呢。

我才不会告诉你们,这书零基础看了开心入门,程序员看了神清气爽呢。

我才不会告诉你们大O表示法、数组、链表、散列动态规划都被这本书变成了萌物呢。

才不会告诉你们,动态规划、图算法、K临近算法、狄克斯特拉算法在这本书里一点也不高冷呢。

我才不会告诉你们,这本书不只有图,还收录了Python代码示例,还有附有详细的代码讲解呢。

尤其要保密的就是这书的封面,嗯,这本书绝对不长下面这样……

作者:Aditya Bhargava

译者:袁国忠

打开APP阅读更多精彩内容