1. 程式人生 > >數據結構與算法之美01

數據結構與算法之美01

block 什麽 學習資源 匹配 無法 資源 因此 隊列 操作

學習資源來自:

極客世間專欄-數據結構與算法之美-王爭PDF

一、目標

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

從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。

從狹義上講,也就是我們專欄要講的,是指某些著名的數據結構和算法,比如隊列、棧、堆、二分 查找、動態規劃等。這些都是前人智慧的結晶,我們可以直接拿來用。

數據結構與算法的關系?

這是因為,數據結構和算法是相輔相成的。數據結構是為算法服務的,算法要作用在特定的數據結 構之上。 因此,我們無法孤立數據結構來講算法,也無法孤立算法來講數據結構。

比如,因為數組具有隨機訪問的特點,常用的二分查找算法需要用數組來存儲數據。但如果我們選 擇鏈表這種數據結構,二分查找算法就無法工作了,因為鏈表並不支持隨機訪問。

數據結構是靜態的,它只是組織數據的一種方式。如果不在它的基礎上操作、構建算法,孤立存在 的數據結構就是沒用的。

學習的重點?

復雜度分析

數據結構和算法解決的是如何更省、更快地存儲和處理數據的問題,因此,我們就需要一個考量效率和

資源消耗的方法,這就是復雜度分析方法。所以,只掌握了數據結構和算法的特點、用法,但是沒有學

會復雜度分析,那就相當於只知道操作口訣,而沒掌握心法。只有把心法了然於胸,才能做到無招勝有招!

常用的,基礎的數據結構與算法

10 個數據結構:

數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳表、圖、 Trie 樹;

10個算法:

遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法。


數據結構與算法之美01