最萌編程高手是這樣煉成的
普通程序員,不學演算法,也可以成為大神嗎?
對不起,這個,絕對不可以。
可是演算法好難啊~~看兩頁書就想睡覺……
所以就不學了嗎?就一直當普通程序員嗎?
如果有一本演算法書,看著很輕鬆……又有代碼示例……又有講解……
怎麼會有那樣的書呢?
哎呀,最好學了演算法人還能變得很萌……
這個……要求是不是太高了呀?
哈哈,有的書真的能滿足所有這些要求哦!
來,看看這本書有多可愛——
二分查找萌一個
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:排序與查找
推薦閱讀: