數據結構與算法學習-開篇

前言

數據結構和算法這門課一直是計算機專業最基礎的一門課,大學時期掌握的不夠好,畢業後長期寫業務,也沒有特別的花時間好好攻克一下,一直是本身的短板。此次在極客時間上訂閱了兩門數據結構和算法方面的專欄,一是 Google 工程師王爭老師主講的《數據結構與算法之美》專欄,另外一篇是前 Facebook 工程師覃超老師主講的視頻專欄《算法面試通關40講》,計劃將這兩個專欄配合着學習,相互補充,並適時輸出學習筆記。這是第一篇學習筆記,主要回答了數據結構和算法是什麼?爲何要學習?以及怎麼樣學習?這三個問題。程序員

數據結構與算法是什麼?

數據結構與算法是每一個計算機專業必修的一門課,這裏分爲兩個部分,一個是數據結構,一個是算法面試

數據結構是一組數據的存儲結構,算法是操做數據的一組方法。數據結構和算法是相輔相成的,數據結構是爲算法服務的,算法是做用在特定的數據結構之上。數據結構和算法解決的是如何更省、更快地存儲和處理數據的問題。算法

爲何要學習數據結構與算法?

若是把一個優秀程序員須要掌握的技能和金庸武俠小說中的武功技能類比,那麼掌握多少門編程語言就如同掌 握了多少招式,如降龍十八掌,打狗棒法等,而數據結構與算法就如同是武林高手的內功,像九陽神功、易筋經同樣。內功就如同基礎,只有內功紮實,學習任何招式就會事半功倍。編程

總結下有這幾個理由:數組

  1. 進入國內外大廠必備
  2. 修煉編程基礎思惟,寫出性能更優的代碼
  3. 提升學習力,掌握計算機程序的本質

怎麼樣學習數據結構與算法?

#學什麼

這是王爭老師繪製的一張幾乎涵蓋了全部數據結構與算法知識點的知識圖譜數據結構

學習重點:app

  1. 學習複雜度分析,考量效率和資源消耗的標準。
  2. 最經常使用、最基礎的 20 個數據結構與算法,學習他們的:來歷特色適合解決什麼問題實際的應用場景
    • 數據結構:數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳錶、圖、Trie樹。
    • 算法:遞歸、排序、二分查找、搜索、哈希算法、分治算法、回溯算法、動態規劃、字符串匹配算法。

#怎麼學

  1. 邊學邊練習,三分學,七分練。將每次講到的數據結構和算法使用本身熟悉的編程語言實現一遍,這裏將先使用最經常使用的 C 語言實現,後面想再分別使用 Objective-C、Swift、JavaScript 實現一遍。
  2. 多問多思考多互動,在專欄留言區多提問,參與討論,一塊兒進步。
  3. 設定切實可行目標,每次學習完輸出學習筆記。
  4. 心態平和,沉澱知識,反覆迭代。

#有關書籍

  1. 入門:《大話數據結構》《圖解算法》
  2. 編程語言:《數據結構和算法分析》
  3. 面試:《劍指offer》《編程之美》《編程珠璣》
  4. 閒暇閱讀:《算法帝國》《數學之美》《算法之美》
  5. 經典大部頭:《算法導論》《算法》
  6. 殿堂級:《計算機程序設計藝術》

分享我的技術學習記錄和跑步馬拉松訓練比賽、讀書筆記等內容,感興趣的朋友能夠關注個人公衆號「青爭哥哥」。數據結構和算法

相關文章
相關標籤/搜索