零壓力入門算法的頂流暢銷書《漫畫算法》施展了哪些“魔法”?

來,認爲算法高深莫測、難以掌握的同學請起立。

好了好了,同學們冷靜點,請坐請坐!

博文菌算是半個過來人,永遠忘不了自己第一次翻開算法書的情形——

隨便翻一頁,目之所及不是大篇大篇的代碼,

就是亂七八糟的符號公式,

這枯燥的大磚頭,配上黑白印刷,

一陣暈眩後,氣的我只想睡覺。

相信很多同學都有被一些著作的算法講解嚇到過,

很大原因可能是這些書不適合入門

剛開局就給自己地獄難度,當然會遭受暴擊!

相反,想入門算法,只要選對了書,每一天都可以是情人節! 比如,今天的主角《漫畫算法:小灰的算法之旅(Python篇)》,

沒有滿屏的代碼,沒有古怪的公式符號,

只有色彩豐富的圖形萌出天際的漫畫故事

能夠讓你在愉快的學習氛圍中,輕鬆領悟算法思想、理解數據結構,特別適合大家入門學習!

作爲去年最暢銷的IT新書《漫畫算法》的Python篇,它的講法上延續了上一版的優點,內容也做了升級,

本書重點講解算法和數據結構的基礎知識

像是時間複雜度、二叉樹、排序算法等等。

並且書中還特別介紹了面試中的算法職場應用

全書用極具親和力的方式,把算法“是啥、咋來的、能幹啥”講的透透兒的。就算完全沒有計算機背景的同學讀起來也不覺得生硬!

比如在介紹基礎的 冒泡排序 的時候,

一般書裏會這樣介紹:

它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從Z到A)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。

這個算法的名字由來是因爲越小的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。

然後貼上一張冒泡排序流程圖:

看完這一段,各位同學,大家冒泡了嗎?

反正博文菌已經開始冒煙了……

再看看《漫畫算法(Python版)》中是如何講解的!

就像汽水中小氣泡們會因爲輕重而向上浮動,

冒泡排序中的小元素們也會因爲大小而向一側浮動!

是不是簡單、生動又清晰!

接下來,流程示例是這樣的:

有8個數字組成一個無序數列{5,8,6,3,9,2,1,7},希望按照從小到大的順序對其進行排序。

按照冒泡排序的思想,我們要把相鄰的元素兩兩比較,當一個元素大於右側相鄰元素時,交換它們的位置;當一個元素小於或等於右側相鄰元素時,位置不變。詳細過程如下:

這樣一來,元素9作爲數列中最大的元素,就像是汽水裏的小氣泡一樣,“漂”到了最右側。

超級細緻,是不是一下子就懂了,甚至覺得簡單極了?!

冒泡排序是基礎中的基礎,如果你覺得它沒有什麼代表性的話,那再來看看《漫畫算法》介紹  動態規劃  問題時都用了哪些“手段”~

書中以典型問題“挖金礦”爲主線,從小灰同學一次失敗的面試經驗開始:

接下來的講解中,用大量直觀的圖形描述來進行解釋問題、引導思路:

時不時可愛的小灰和大黃會突然出現,在它們的對話中暗藏着對算法的描述:

在小灰和大黃一步步地引導下,博文菌都能夠無障礙的Get到動態規劃的基本思想,讀完忍不住地驚歎“這還是曾經那個燒腦又可怕的動態規劃問題嗎?”

其實啊,算法就是這樣,很多算法只是外表複雜,但只要方法得當,搞清原理,掌握起來還是很容易的!

《漫畫算法:小灰的算法之旅(Python篇)》這本書就針對這些“唬人”的算法,結合漫畫帶來的輕鬆氛圍,由淺入深地引導我們開動腦筋去思考問題的答案!

說它是零壓力入門的算法靈藥一點也都不過分,也難怪stormzhang、劉欣、樑勇 、李燁、張洪亮、崔慶才、劉志軍等等圈內大佬們都在咔咔力薦!

最後,博文菌再次強烈建議廣大愛好Python和算法的朋友們閱讀本書!


更多科技資訊請見微信公衆號:博文視點Broadview(微信號:bvbooks)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章