《演算法圖解》讀後小記

葉糖糖發表於2017-04-09

非常幸運,在2017年的3月中旬遇見《演算法圖解》。這是一本有趣的演算法書。試讀完第一章節之後,我立即入手了電子書,繼續閱讀。任平時多喜歡讀紙質書,那一刻也無法容忍最少的等待。

在一週的閱讀過程中,共提交了3處勘誤。其中1處已經稽核,其餘2處待稽核。使用紙張8張(A4),編碼累計6小時。

掌握了10種基礎演算法:

  • 二分法查詢
  • 選擇排序
  • 遞迴
  • 快速排序
  • 雜湊表
  • 廣度優先搜尋
  • 狄克斯特拉演算法
  • 貪婪演算法
  • 動態規劃
  • K最近鄰演算法

瞭解了10種進階演算法及適用場景。接下來將記錄閱讀《演算法圖解》過程中的一些細節。

一、工欲善其事,必先利其器

解鎖搬運程式碼的小男孩的讀書姿勢,正式閱讀前需準備,如下技能和準備:

  • 《 演算法圖解》1本(中/英文,紙/電不限);
  • 10張白紙(或1本筆記本)和鉛筆(水筆)1支;
  • 裝有Python開發環境的電腦1臺;
  • 理解對數、次方、平方根的計算。

二、學而不思則罔,思而不學則殆

凡寫程式者,誰還沒遇到幾段抄書而執行不了的程式碼?凡讀書者,都信實踐出真知。所以,你應該懂了,我就不講了。

學習是一件快樂的事情,所以我喜歡在閱讀的過程的去極力的思考。自己不去思考而只是瀏覽書上的內容,其實質猶如竹籃打水。在閱讀《演算法圖解》的時候,自己會拿著紙盒筆理出自己的思路,然後再去對比書上的解題思路。明白了作者的用意之後,接著會花幾分鐘整理一下,然後在IDE中去編寫程式驗證想法。可能是電子書排版的問題,在寫一些程式的時候要注意某些程式碼的縮排。要不然程式會執行出意想不到的結果,從而懷疑寫了一次假程式。

當然在讀這本書的過程中最有意思的事情,應該是當自己的理解和書上的圖對應不起來。黑人問號臉,怎麼回事?感覺腦細胞又要死亡一個軍團,經過2~3次的複查之後,可以確認應該是圖上寫錯了。突然有了病樹前頭萬木春的喜悅,要不然對於一個有強迫症的患者來說,這簡直就是痛苦的折磨。

雖然在閱讀過程中有一點小插曲,不過並不影響我對這本書的喜愛之情。4月下旬的時候,自己還會再細緻的讀一遍《演算法圖解》,古人云“溫故而知新”。

PS:希望能夠有更多的小夥伴喜歡《演算法圖解》,期待與你一起討論演算法。對於如何思考演算法,對於初學者來說可以看哈佛大學的CS50課程,http://cs50.tv/2016/fall/,這門課程是教學生如何思考演算法及如何有效的解決問題的。還不錯,我就是學習這個課程接觸演算法的。

相關文章