有很多人說,自己實際工作中根本用不到數據結構和算法。所以,就算不懂這塊知識,只要 Java API、開發框架用得熟練,照樣可以把代碼寫得“飛”起來。事實真的是這樣嗎?
我們學習數據結構和算法,並不是為了死記硬背幾個知識點。我們的目的是建立時間複雜度、空間複雜度意識,寫出高質量的代碼,能夠設計基礎架構,提升編程技能,訓練邏輯思維,積攢人生經驗。
從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。
數據結構和算法是相輔相成的。數據結構是為算法服務的,算法要作用在特定的數據結構之上。 因此,我們無法孤立數據結構來講算法,也無法孤立算法來講數據結構。
一般學習,集中精力逐一攻克這 20 個知識點就足夠了。這裡面有 10 個數據結構:數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳錶、圖、Trie 樹;10 個算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法。
掌握了這些基礎的數據結構和算法,再學更加複雜的數據結構和算法,就會非常容易、非常快。
————————————————————————————
以上內容整理自王爭專欄,頭條號學點乾貨整理。
閱讀更多 學點乾貨 的文章