標籤:

最萌編程高手是這樣煉成的

普通程序員,不學演算法,也可以成為大神嗎?

對不起,這個,絕對不可以。

可是演算法好難啊~~看兩頁書就想睡覺……

所以就不學了嗎?就一直當普通程序員嗎?

如果有一本演算法書,看著很輕鬆……又有代碼示例……又有講解……

怎麼會有那樣的書呢?

哎呀,最好學了演算法人還能變得很萌……

這個……要求是不是太高了呀?

哈哈,有的書真的能滿足所有這些要求哦!

來,看看這本書有多可愛——

二分查找萌一個

1~100,阿喵同學選了個數,記在心裡,讓鼻子同學猜

如果像下面這樣猜……

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

因為跟他一起玩耍實在是……

太無聊了!

但是,如果這樣猜……

鼻子同學很快就猜對了

阿喵同學會覺得鼻子同學很聰明

而且好像很懂她哦~

------------------------------------------------------------------------------

重點來了~

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

這個就是二分查找咯~

Python代碼來一發——

---------------------------------------------------------------------------

遞歸演算法萌一個

奶奶有個大盒子,可以上鎖的那種

打開大盒子,裡面有很多小盒子

奶奶說,大盒子的鑰匙就在某個小盒子里

這些小盒子里還有更小的盒子……

你要如何找到鑰匙呢?

你可以這樣:

也可以這樣:

第一種方法好像比較聰明

但是第二種方法更簡單

------------------------------------------------------------------------------

重點來了~

第一種方法叫做簡單查找,第二種方法叫做遞歸。

在編程中,遞歸非常常見,事實上,很多演算法都用到了遞歸思想。

不過呢,也有人覺得遞歸很麻煩。

你怎麼看?

簡單查找是這樣的——

遞歸是這樣的——

————————————————————————————

背包問題萌一個

有一個賊,帶著一個包,能裝4磅重的東西

他可以偷的東西只有以下幾件

請問,他拿走哪幾樣比較合算?

東西反正也不多,

要不然就一輪一輪地試?

這次當然沒問題……

可是賊也不能保證

每次只想偷這麼點東西

花那麼多時間試來試去的

不怕被人發現嗎?

------------------------------------------------------------------------------

重點來了~

說得簡單一點,背包問題就是——東西你都想要,但是不能都要,那麼怎樣盡量多拿點。

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

背包問題有很多種解決辦法,每一種都對應一種演算法。把這個問題想清楚了,你至少可以成為半個演算法高手。

——————————————————————————

萌不萌?更萌的在書里,不給你們看!

我才不會告訴你們,這些連環畫一樣的演算法解析都出自好玩又漲知識的《演算法圖解》呢。

我才不會告訴你們,這書零基礎看了開心入門,程序員看了神清氣爽呢。

我才不會告訴你們大O表示法、數組、鏈表、散列動態規劃都被這本書變成了萌物呢。

才不會告訴你們,動態規劃、圖演算法、K臨近演算法、狄克斯特拉演算法在這本書里一點也不高冷呢。

我才不會告訴你們,這本書不只有圖,還收錄了Python代碼示例,還有附有詳細的代碼講解呢。

尤其要保密的就是這書的封面,嗯,這本書絕對不長下面這樣……

作者: Aditya Bhargava 譯者:袁國忠

文案創意:@張憬

本文首發於圖靈教育微信公眾號(turingbooks)

PS:

不用Python?那你用什麼?

用Java的,請看:

演算法 第4版 Algorithms Fourth Edition

用C語言的,請看:

《啊哈 演算法》(啊哈磊)【摘要 書評 試讀】- 京東圖書

用C/C++的,請看:

《挑戰程序設計競賽(第2版)》(秋葉拓哉,岩田陽一,北川宜稔)【摘要 書評 試讀】- 京東圖書

挑戰程序設計競賽2 演算法和數據結構

《演算法的樂趣》(王曉華)【摘要 書評 試讀】- 京東圖書

用JavaScript的,請看:

《學習JavaScript數據結構與演算法》([巴西]格羅納(Loiane Groner))【摘要 書評 試讀】- 京東圖書

語言已經不是事兒了的,請看:

《演算法新解》(劉新宇)【摘要 書評 試讀】- 京東圖書

《垃圾回收的演算法與實現》([日]中村成洋,相川光)【摘要 書評 試讀】- 京東圖書

琢磨偽代碼的,請看:

《演算法基礎(第5版)》([美]那不勒坦(Richard E.Neapolitan))【摘要 書評 試讀】- 京東圖書

要成仙兒的,請看TAOCP:

《計算機程序設計藝術》

《計算機程序設計藝術(卷1):基本演算法(第3版)》([美]高德納(Donald E. Knuth))【摘要 書評 試讀】- 京東圖書

包括——

卷1:基本演算法

卷2:半數值演算法

卷3:排序與查找


推薦閱讀:

從零開始手敲次世代遊戲引擎(四十五)
快速排序
感謝金主和大腿?ω?
序列化二叉樹
記錄演算法

TAG:演算法 | 漫畫 |