天天看點

程式員必須掌握的核心算法有哪些?

一、算法最最基礎

1、時間複雜度

2、空間複雜度

一般最先接觸的就是時間複雜度和空間複雜度的學習了,這兩個概念以及如何計算,是必須學的,也是必須最先學的,主要有最大複雜度、平均複雜度等,直接通過部落格搜尋學習即可。

文章推薦:

算法分析神器—時間複雜度

二、基礎資料結構

1、線性表

清單(必學)

連結清單(必學)

跳躍表(知道原理,應用,最後自己實作一遍)

并查集(建議結合刷題學習)

不用說,連結清單、清單必須,不過重點是連結清單。

三分鐘基礎資料結構:如何輕松手寫連結清單?

以後有面試官問你「跳躍表」,你就把這篇文章扔給他

2、棧與隊列

棧(必學)

隊列(必學)

優先隊列、堆(必學)

多級回報隊列(原理與應用)

特别是優先隊列,再刷題的時候,還是經常用到的,隊列與棧,是最基本的資料結構,必學。可以通過部落格來學習。相關文章:

三分鐘基礎知識:什麼是棧?

二叉堆是什麼鬼?

【算法與資料結構】堆排序是什麼鬼?

3、哈希表(必學)

碰撞解決方法:開放定址法、鍊位址法、再次哈希法、建立公共溢出區(必學)

布隆過濾器(原理與應用)

哈希表相關的,推薦通過部落格來學習,推薦文章:

Hash沖突之開放位址法

4、樹

二叉樹:各種周遊(遞歸與非遞歸)(必學)

哈夫曼樹與編碼(原理與應用)

AVL樹(必學)

B 樹與 B+ 樹(原理與應用)

字首樹(原理與應用)

紅黑樹(原理與應用)

線段樹(原理與應用)

樹相關是知識還是挺多的,建議看書,可以看《算法第四版》。相關文章:

高頻面試題:什麼是B樹?為啥檔案索引要用B樹而不用二叉查找樹?

【漫畫】以後在有面試官問你AVL樹,你就把這篇文章扔給他。

騰訊面試題:有了二叉查找樹、平衡樹為啥還需要紅黑樹?

【面試被虐】遊戲中的敏感詞過濾是如何實作的?

5、數組

樹狀數組

矩陣(必學)

樹狀數組其實我也沒學過,,,,

————————————————

版權聲明:本文為CSDN部落客「帥地」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。

原文連結:

https://blog.csdn.net/m0_37907797/article/details/102661778

繼續閱讀