1. 程式人生 > >資料結構與算法系列1--簡介

資料結構與算法系列1--簡介

為什麼要學習資料結構和演算法?

1.直接好處是能夠有寫出效能更優的程式碼
2.演算法,是一種解決問題的思路和方法,有機會應用到生活和事業的其他方面。
3.長期來看,大腦思考能力是個人最重要的核心競爭力,而演算法是為數不多的能夠有效訓練大腦思考能力的途徑之一。

什麼是資料結構?什麼是演算法?資料結構與演算法的關係?

資料結構就是指一組資料的儲存結構。
演算法就是操作資料的一組方法。
關係:資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。因此,我們無法孤立資料結構來講演算法,也無法孤立演算法來講資料結構。

比如,因為陣列具有隨機訪問的特點,常用的二分查詢演算法需要用陣列來儲存資料。但如果我們選擇連結串列這種資料結構,二分查詢演算法就就無法工作了,因為連結串列並不支援隨機訪問。
資料結構是靜態的,它只是組織資料的一種方式。如果不在它的基礎上操作、構建演算法,孤立存在的資料結構就是沒用的。&oq=資料結構是靜態的,它只是組織資料的一種方式。如果不在它的基礎上操作、構建演算法,孤立存在的資料結構就是沒用的。

學習的重點在什麼地方?

  1. 首先要掌握一個數據結構與演算法中最重要的概念——複雜度分析
    資料結構和演算法解決的是如何更省、更快地儲存和處理資料的問題,因此,我們就需要一個考量效率和資源消耗的方法,這就是複雜度分析方法。
    2.掌握10種經典資料結構和10種演算法:
    10個數據結構:陣列、連結串列、棧、佇列、散列表、二叉樹、堆、跳錶、圖、Trie+樹;
    10個演算法:遞迴、排序、二分查詢、搜尋、雜湊演算法、貪心演算法、分治演算法、回溯演算法、動態規劃、字串匹配演算法。

有效學習方法:

1.多總結練習,適度刷題
2.思考,討論,多問,評論
3.針對每個具體的演算法和資料結構須理解:來歷,自身特點,適用方式,實際應用場景
最後是一張學習圖譜:
在這裡插入圖片描述