1. 程式人生 > >資料結構與演算法學習大綱

資料結構與演算法學習大綱

  • 入門篇 時間、空間複雜度分析是資料結構和演算法中非常重要的知識點,貫穿整個專欄的學習過程。但同時也是比較難掌握的,所以我用了 2 節課來講這部分內容,而且還舉了大量的例項,讓你一邊學一邊練,真正能掌握複雜度分析,為後面的學習鋪路。

我希望通過這一模組,你能掌握時間、空間複雜度的概念,大 O 表示法的由來,各種複雜度分析技巧,以及最好、最壞、平均、均攤複雜度分析方法。之後,面對任何程式碼的複雜度分析,你都能遊刃有餘、毫不畏懼!

  • 基礎篇 涵蓋了最基礎、最常用的資料結構和演算法。針對每種資料結構和演算法,我都會結合具體的軟體開發例項,由淺入深進行講解,並適時總結一些實用“寶典”,保證你印象深刻、學有所用。

比如遞迴這一節,我會講到,為什麼遞迴程式碼比較難寫?如何避免堆疊溢位?如何避免遞迴冗餘計算?如何將遞迴程式碼轉化為非遞迴程式碼?

  • 高階篇 這部分我會講一些不是那麼常用的資料結構和演算法。雖然不常用,但是這些內容你也需要知道。設定這一部分的目的,是為了讓你開拓視野,強化訓練演算法思維、邏輯思維。如果說學完基礎部分可以考 80 分,那掌握這一部分就能讓你成為尖子生!

  • 實戰篇 我們整個專欄都是圍繞資料結構和演算法在具體軟體實踐中的應用來講的,所以最後我會通過實戰部分串講一下前面講到的資料結構和演算法。我會拿一些開源專案、框架或者系統設計問題,剖析它們背後的資料結構和演算法,讓你有一個更加直觀的感受。

以上摘抄自:極客時間-王爭老師的專欄-《資料結構與演算法之美》

在這裡插入圖片描述