數據結構與算法之美---02 如何抓住重點,系統高效地學習?

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

  • 從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操做數據的一組方法。
  • 從狹義上講,是指某些著名的數據結構和算法,好比隊列、棧、堆、二分查找、動態規劃等。

我的理解:(不知道正確與否)數組

      數據結構是兩部分,一個是數據,一個是結構,好比文檔講的圖書館藏書編號,數據是書籍,編號的規律就是結構,合起來就是數據結構。?數據結構

數據結構和算法什麼關係?數據結構和算法

  1. 數據結構和算法是相輔相成的。
  2. 數據結構是爲算法服務的,算法要做用在特定的數據結構之上。
  3. 數據結構是靜態的,它只是組織數據的一種方式。若是不在它的基礎上操做、構建算法,孤立存在的數據結構就是沒用的。

我的理解:(不知道正確與否)學習

不一樣的數據結構,使用的算法不一樣。同一數據的不一樣結構,可能使用的算法也不同。spa

重點:設計

  1. 數據結構與算法中最重要的概念——複雜度分析數據結構和算法解決的是如何更省、更快地存儲和處理數據,考量效率和資源消耗的方法,就是複雜度分析法。
  2. 10 個數據結構:數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳錶、圖、Trie 樹;
  3. 10 個算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法。
  4. 掌握數據結構與算法要點:「來歷」「自身的特色」「適合解決的問題」以及「實際的應用場景」

學習技巧:視頻

1. 邊學邊練,適度刷題排序

  建議你每週花 1~2 個小時的時間,集中把這周學習的數據結構和算法,全都本身寫出來,用代碼實現一遍。遞歸

  「適度」刷題,但必定不要浪費太多時間在刷題上。學習的目的仍是掌握,而後應用。

2. 多問、多思考、多互動

  最好的方法是,找到幾我的一塊兒學習,一起討論切磋,有問題及時尋求老師答疑。

3. 打怪升級學習法

  學習的過程當中,碰到最大的問題就是,堅持不下來。給本身設立一個切實可行的目標,能夠設立這樣一個目標:每節課後的思考題都認認真思考,而且回覆到留言區每節課後都寫一篇學習筆記或者學習心得

4. 知識須要沉澱,不要想試圖一會兒掌握全部

  學習知識的過程是反覆迭代、不斷沉澱的過程。

技術名詞:

  1. 二分查找算法
  2. 鏈表 
  3. 二分圖、最大流(不多用到)

課後思考:

思考一下你本身學習這個專欄的方法,讓咱們一塊兒在留言區立下 Flag,相互鼓勵! 另外,你在以前學習數據結構和算法的過程當中,遇到過什麼樣的困難或者疑惑嗎?

學習此專欄方法:組隊學習,每次課後寫博客輸出

困難或疑惑:暫時沒有。

 

10.17週四學習總結:(今天棒棒的)

  1. 10.17學習內容:本節,文檔,視頻,博客輸出;
  2. 前幾節仍是題外話,沒有設計到真正的內容,比較簡單;
  3. 合理安排時間,簡單的就學快一點,花更多的時間啃大頭。下次儘可能利用業餘時間學習。
相關文章
相關標籤/搜索