數據結構與算法之美01
阿新 • • 發佈:2019-05-11
block 什麽 學習資源 匹配 無法 資源 因此 隊列 操作
學習資源來自:
極客世間專欄-數據結構與算法之美-王爭PDF
一、目標
什麽是數據結構?什麽是算法?
從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。
從狹義上講,也就是我們專欄要講的,是指某些著名的數據結構和算法,比如隊列、棧、堆、二分 查找、動態規劃等。這些都是前人智慧的結晶,我們可以直接拿來用。
數據結構與算法的關系?
這是因為,數據結構和算法是相輔相成的。數據結構是為算法服務的,算法要作用在特定的數據結 構之上。 因此,我們無法孤立數據結構來講算法,也無法孤立算法來講數據結構。
比如,因為數組具有隨機訪問的特點,常用的二分查找算法需要用數組來存儲數據。但如果我們選 擇鏈表這種數據結構,二分查找算法就無法工作了,因為鏈表並不支持隨機訪問。
數據結構是靜態的,它只是組織數據的一種方式。如果不在它的基礎上操作、構建算法,孤立存在 的數據結構就是沒用的。
學習的重點?
復雜度分析
數據結構和算法解決的是如何更省、更快地存儲和處理數據的問題,因此,我們就需要一個考量效率和
資源消耗的方法,這就是復雜度分析方法。所以,只掌握了數據結構和算法的特點、用法,但是沒有學
會復雜度分析,那就相當於只知道操作口訣,而沒掌握心法。只有把心法了然於胸,才能做到無招勝有招!
常用的,基礎的數據結構與算法
10 個數據結構:
數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳表、圖、 Trie 樹;
10個算法:
遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法。
數據結構與算法之美01