《數據結構與算法之美》學習筆記(1)

爲什麼學習數據結構與算法?

  • 直接的好處是能夠寫出性能更優的代碼。
  • 算法,是一種解決問題的思路和方法,有機會應用到生活和事業的其他方面。
  • 數據結構與算法,能有效訓練大腦思考能力,使我們看待問題的深度,解決問題的角度就會完全不一樣。提升個人的核心競爭力。

什麼是數據結構?什麼是算法?

從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。

從狹義上講,也就是《數據結構與算法之美》這個專欄要講的,是指某些著名的數據結構和算法,比如隊列、棧、堆、二分查找、動態規劃等。這些都是前人智慧的結晶,我們可以直接拿來用。我們要講的這些經典數據結構和算法,都是前人從很多實際操作場景中抽象出來的,經過非常多的求證和檢驗,可以高效地幫助我們解決很多實際的開發問題。

數據結構和算法是相輔相成的。數據結構是爲算法服務的,算法要作用在特定的數據結構之上。

學習的重點在什麼地方?

首先要掌握一個數據結構與算法中最重要的概念——複雜度分析。

它是數據結構和算法學習的精髓。數據結構和算法解決的是如何更省、更快地存儲和處理數據的問題,因此,就需要一個考量效率和資源消耗的方法,這就是複雜度分析方法。

搞定複雜度分析,就要進入數據結構與算法的正文內容了。

下圖,裏面幾乎涵蓋了所有數據結構和算法書籍中都會講到的知識點。
在這裏插入圖片描述
作爲初學者,或者一個非算法工程師來說,並不需要掌握圖裏面的所有知識點。

20 個最常用的、最基礎數據結構與算法:

10 個數據結構:數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳錶、圖、Trie 樹;

10 個算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法。

學習技巧:

  • 邊學邊練,適度刷題
  • 多問、多思考、多互動
  • 打怪升級學習法
  • 知識需要沉澱,不要想試圖一下子掌握所有
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章