常用 常考演算法總結

2022-05-22 01:00:12 字數 2353 閱讀 9695

模擬

搜尋廣度優先搜尋(bfs)

優化:雙向bfs

深度優先搜尋(dfs)

優化:折半dfs

迭代加深搜尋(ids)

啟發式搜尋(astar)

優化:idastar

優化:剪枝、位運算

排序氣泡排序/選擇排序

基數排序/桶排序

計數排序

插入排序/希爾排序

快速排序

歸併排序/求逆序對數

堆排序貪心

分治二分/三分/n分

cdq分治

倍增/st

離散化二分答案

快速冪/十進位制快速冪

數列求和

泰勒展開

矩陣矩陣乘法

高斯消元

判斷線性相關

catalan數

組合數學

加法原理/乘法原理

組合數遞推/楊輝三角

二項式定理

抽屜原理/鴿籠原理

lucas定理

容斥原理

質數判定/miller-rabin檢驗

分解質因數/求約數

歐幾里得演算法/輾轉相除法

擴充套件歐幾里得演算法/乘法逆元/二元一次同餘方程

線性預處理1-n乘法逆元

素數篩埃拉託斯特尼篩

尤拉篩尤拉函式

莫比烏斯函式

費馬小定理

威爾遜定理

中國剩餘定理/孫子定理

二次剩餘/cipolla's algorithm

原根離散對數/baby-step giant-step

置換burnside引理

polya定理

揹包dp

01揹包

完全揹包

多重揹包

混合揹包

二維揹包

分組揹包

樹形揹包

泛型揹包

按維度線性dp

區間dp

高維dp

按型別劃分dp

最長上公升子串行(lis)

最長公共子串行(lcs)

有向無環圖(dag)上dp

(基於聯通性的)狀態壓縮dp

優化滾動陣列

字首和四邊形不等式

斜率優化

位運算資料結構

cdq分治

技巧記憶化搜尋

順推/逆推

最小表示法

連通性圖的遍歷

拓撲排序

強聯通分量

割點、橋、雙聯通分量/tarjan演算法

樹最近公共祖先(lca)/tarjan演算法

樹的中心/直徑

樹的重心

樹的同構

最短路多源最短路徑(apsp)/floyd

最小環傳遞閉包

單源最短路徑(sssp)/queue+bellman-ford/heap+dijkstra

生成樹最小生成樹

最小比例生成樹

最小瓶頸樹

二分圖二分圖驗證

二分圖染色

最大匹配/匈牙利演算法

最優匹配/km演算法

網路流dinic演算法

isap演算法

預流推進演算法

技巧:拆點

優化:合點/合邊

優化:線段樹

高精度高精度對低精度加減乘除取餘

高精度對高精度加減乘除取餘

優化:快速傅利葉變換

煉表單雙向鍊錶

塊狀鍊錶

鄰接表/邊表棧佇列

迴圈佇列

優先佇列/最小二叉堆

左偏樹fibonacci堆

樹二叉查詢樹

堆(同上)

笛卡爾樹

樹狀陣列

線段樹拓展:動態線段樹、四分樹

重量平衡樹

伸展樹並查集

雜湊表(hash)

自動機字串

trie樹

kmpmanacher

ac自動機(aho-corasick automaton)

字尾陣列/字尾樹/字尾自動機/字尾平衡樹等

動態樹樹鏈剖分/樹塊剖分

link-cut tree/euler-tour tree

平面幾何/立體幾何/解析幾何/引數方程

判斷點與多邊形關係(轉角法/掃瞄線法)

多邊形面積交/面積並

極角排序

凸包/旋轉卡殼

半平面交

三角剖分/voronoi圖

sg組合遊戲/sg函式

bash遊戲/wythoff遊戲/nim遊戲

對抗搜尋

完全概率

bayes定理

markov過程

chebyshev定理

分塊隨機調整/模擬退火/隨機爬山

單純形法

面試常考 排序演算法總結

排序在各次面試的過程中問道的次數不少,氣泡排序和快速排序尤多。因此做一些總結,尤其是 部分。1.氣泡排序 1 思想 在一組數中,對當前未排好序的數,自上而下地對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的數往上冒。2 複雜度 平均情況 o n 2 最壞情況 o n 2 逆序有序 最好情況...

常考演算法 鍊錶總結

面試 考試速查 常考資料結構型別速查速補表 單鏈表 雙向鍊錶 約瑟夫環 棧 棧實現計算器 字首,中綴,字尾表示式,逆波蘭計算器的實現 遞迴,迷宮回溯,八皇后 排序演算法基礎 氣泡排序 選擇排序 插入排序 希爾排序 快速排序 歸併排序 基數排序 各種排序的比較 二叉排序樹 bst刪除一棵子樹的節點 二...

常考排序演算法

演算法思想 氣泡排序與快速排序屬於互換類的排序方法。氣泡排序是通過相鄰資料元素的交換逐步將線性表變成有序。基本過程為 首先,從表頭開始掃瞄線性表,在掃瞄的過程中逐次比較相鄰兩個元素的大小。若前面元素大於後面元素,則將它們互換消去乙個逆序。然後,從後到前掃瞄剩下的線性表,同樣在掃瞄過程中比較兩個元素的...