如何學習資料結構與演算法
什麼是資料結構和演算法 資料結構,就是一組資料的儲存結構。 演算法,就是操作資料的一組方法。 資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。 為什麼需要資料結構和演算法 來談談應用層面的原因。在電腦科學和網際網路迅猛發展下,需要計算的資料量越來越龐大。但是計算機的計算能力是有限的,這麼大量的資料計算,需要越來越多的計算機,需要越來越長的計算時間,注重效率的我們需要儘可能的提高計算效率。其中重要的一項,就是使用合適的資料結構和演算法。選用合適的資料結構和演算法,特別是在處理體量非常龐大的資料的時候,可以極大提高計算效率。那麼,第三個問題來了,我們怎麼選用合適的資料結構和演算法?有什麼衡量標準嗎? 怎麼樣衡量資料結構和演算法 需要引入一個衡量的標準(metric)---時間複雜度和空間複雜度。 學習資料結構和演算法的基石,就是要學會`複雜度分析`。知道怎麼去分析複雜度,才能作出正確的判斷,在特定的場景下選用合適的正確的演算法。而不是盲目的死記爛背,機械操作。
學什麼: 1. 效率和資源消耗的度量衡--複雜度分析。 2. 最常用、最基礎的20個數據結構與演算法,學習他們的:“來歷”、“特點”、“適合解決什麼問題”和“實際的應用場景”。 資料結構:陣列、連結串列、棧、佇列、散列表、二叉樹‘、堆、跳錶、圖、Tire樹 演算法: 遞迴、排序、二分查詢、搜尋、雜湊演算法、貪心演算法、分治演算法、回溯演算法、動態規劃、字串匹配演算法 怎麼學 1. 邊學邊練,每週花 1~2 小時集中攻關三節課涉及的資料結構和演算法,全部寫出來。 2. 主動提問、多思考、多互動。在留言區增加自己的留言。 3. 自我激勵,每次學習完做一篇學習筆記。 4. 沉下心不要浮躁,先把這些基礎的資料結構和演算法,還有學習方法熟練掌握後,再追求更高層次。