蠢萌算法,瞬间提升编程力一万点...

    xiaoxiao2022-05-12  128

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

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

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

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

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

    怎么会有那样的书呢?

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

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

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

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

    二分查找萌一个

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

    让鼻子同学猜

    如果像下面这样猜……

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

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

    太无聊了!

    但是,如果这样猜……

    鼻子同学很快就猜对了

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

    而且好像很懂她哦~

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

    这个就是二分查找咯~

    Python代码来一发——

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

    递归算法萌一个

    奶奶有个大盒子

    可以上锁的那种

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

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

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

    ……

    你要如何找到钥匙呢?

    你可以这样:

    也可以这样:

    第一种方法好像比较聪明

    但是第二种方法更简单

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

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

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

    你怎么看?

    简单查找是这样的——

    递归是这样的——

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

    背包问题萌一个

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

    能装4磅重的东西

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

    请问,

    他拿走哪几样比较合算?

    东西反正也不多,

    要不然就一轮一轮地试?

    这次当然没问题……

    可是贼也不能保证

    每次只想偷这么点东西

    花那么多时间试来试去的

    不怕被人发现吗?

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

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

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

    来源:中生代技术

    原文链接

    相关资源:免费 Python算法教程_中文版pdf

    最新回复(0)