模擬
搜尋廣度優先搜尋(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刪除一棵子樹的節點 二...
常考排序演算法
演算法思想 氣泡排序與快速排序屬於互換類的排序方法。氣泡排序是通過相鄰資料元素的交換逐步將線性表變成有序。基本過程為 首先,從表頭開始掃瞄線性表,在掃瞄的過程中逐次比較相鄰兩個元素的大小。若前面元素大於後面元素,則將它們互換消去乙個逆序。然後,從後到前掃瞄剩下的線性表,同樣在掃瞄過程中比較兩個元素的...