演算法互動視覺化

每個主題都有 step-by-step 動畫,可以手動控制進度。共 98 個互動頁。

資料結構 15 項
Graph 圖 節點與邊、BFS/DFS O(V + E) 遍歷 線性結構 陣列/堆疊/佇列/雙端 NEW 動態陣列擴容搬遷 vs LIFO vs 環形 FIFO vs 雙端操作 O(1) 均攤 鏈結串列與 LRU Cache NEW 單向鏈結插入/刪除/反轉 vs HashMap+雙向鏈 O(1) 淘汰 O(1)~O(n) 雜湊 Hash Table/Bloom Filter NEW 鏈結法碰撞處理 vs k 雜湊位元陣列(含偽陽性示範) O(1) 平均 二元搜尋樹 BST/AVL NEW BST 插入比較路徑+搜尋 vs AVL 四旋轉自平衡(h/bf 標籤) O(log n)~O(n) 堆積與字典樹 Heap/Trie NEW Min-Heap 上浮下沉(樹+陣列雙視圖) vs Trie 共享前綴查詢 O(log n) / O(m) 區間查詢 線段樹/BIT/稀疏表 NEW 線段樹遞迴分治 vs Fenwick lowbit 跳躍 vs 稀疏表 O(1) 雙窗 O(log n) / O(1) 併查集/單調佇列/跳躍表 NEW Union-Find 路徑壓縮 vs 滑動視窗最大 vs Skip List 多層跳躍 α(n) / O(1) / O(log n) 樹堆與伸展樹 Treap/Splay NEW Treap 隨機優先級雙性質(固定種子示範) vs Splay 伸展到根 O(log n) 期望/均攤 紅黑樹與 B 樹 RB/B-Tree NEW 紅黑修復(重染色/旋轉) vs B 樹節點分裂(t=2 即 2-3-4 樹) O(log n) 保證 空間結構 KD樹/區間樹 NEW KD 交替維度切分+矩形查詢剪枝 vs 區間樹 maxEnd 重疊查詢 O(log n) 平均 後綴陣列與持久化線段樹 NEW 後綴排序+LCP+二分搜尋 vs 路徑複製多版本共享節點 O(n log n) / O(log n) 費氏堆與 Link-Cut 樹 NEW 懶惰合併+級聯剪切攤銷 vs 動態樹 link/cut 連通查詢 攤銷 O(log n) Merkle Tree 雜湊樹 NEW 葉子雜湊逐層合併成 root + Merkle proof(O(log n) 兄弟驗證) + 改一葉 root 全變的防篡改 O(n) 建樹 / O(log n) proof CRDT 無衝突複製資料型別 NEW G-Counter 逐分量 max vs OR-Set 觀察後移除,不同 merge 順序皆收斂到最終一致 O(k) merge
演算法 30 項
快速傅立葉變換 FFT 多項式乘法、頻域轉換 O(n log n) 排序演算法對比 NEW 11 種排序並排同步播放 對比 搜尋演算法對比 NEW Linear/Binary/Jump/Interpolation 並排 對比 最短路徑對比 NEW Dijkstra vs Bellman-Ford(含負權示範) 對比 Floyd-Warshall 全點對最短路 NEW 動態規劃填距離矩陣 O(V³) A* 尋路 NEW 啟發式格點最短路(g+h) 啟發式 字串匹配對比 NEW 暴力/KMP/Rabin-Karp/Z-function 並排 對比 樹遍歷對比 NEW 前序/中序/後序/層序並排 對比 凸包演算法對比 NEW Monotone Chain vs Gift Wrapping 並排 對比 FFT 快速傅立葉 NEW 迭代 FFT 階段值表(位元反轉+蝶形) O(n log n) 動態規劃基礎 NEW 費波那契/LCS/硬幣找零 DP 表逐步填充+回溯 O(m·n) 進階動態規劃 NEW Edit Distance/矩陣鏈/TSP bitmask/樹上獨立集 綜合 前綴和與差分 NEW 前綴和建表/區間查詢 + 差分區間加值/還原 O(n)+O(1) 滑動視窗 NEW 固定視窗最大和 + 可變視窗最短子陣列 O(n) 雙指標 NEW 對撞指標(兩數之和/回文)+ 快慢指標(移除元素) O(n) 單調棧 NEW 下一個更大元素/最大矩形/每日溫度(棧內容同步呈現) O(n) 圖遍歷 BFS/DFS NEW 廣度優先(佇列)vs 深度優先(棧)逐步遍歷 O(V+E) LCA 最近共同祖先對照 NEW Binary Lifting(線上稀疏表) vs Tarjan(離線 DFS+並查集) O(log n) / O(n+q) 樹分解對照 重心分解/樹鏈剖分 NEW Centroid Decomposition(大小減半分治) vs HLD(重鏈剖分) O(n log n) / O(n) Aho-Corasick 多模式匹配 NEW trie + fail 失敗鏈結(KMP 推廣),一次掃描找所有模式 O(n+m+z) 掃描線 線段相交 NEW 事件排序 + 活動集合,垂直掃描線偵測線段相交 O(n² log n) 進階圖論 Prim MST/Tarjan SCC NEW 最小生成樹(優先佇列貪心) vs 強連通分量(dfn/low+棧) MST / SCC 網路流 Edmonds-Karp 最大流 NEW BFS 最短增廣路+殘餘圖反向邊,邊上即時 flow/cap O(V·E²) 圖論雜項 歐拉路徑/2-SAT NEW Hierholzer 一筆畫(棧+刪邊) vs 2-SAT(蘊含圖+SCC 賦值) O(E) / O(n+m) 遞迴家族 河內塔/分治/回溯 NEW 河內塔遞迴 vs 最大子陣列分治 vs N皇后回溯剪枝 O(2^n)/O(n log n)/剪枝 貪心 活動選擇/分數背包 NEW 依結束時間選不重疊活動 vs 依 CP 值取物(含分數) O(n log n) 數學與位元 質數篩/GCD/數1位元 NEW 埃氏篩劃掉合數 vs 輾轉相除 vs n&(n-1) 清位 O(n log log n) 等 雜項 Nim/折半列舉/QuickSelect/Mo's NEW XOR 必勝 vs 折半子集和 vs 隨機選擇 vs 離線區間查詢 綜合 PageRank 網頁排名 NEW 隨機衝浪者穩態:冪迭代逐輪收斂,阻尼 d=0.85+懸掛質量均攤 O(k·(V+E)) LZ77 滑動視窗壓縮 NEW 滑動視窗壓縮(gzip/zlib/PNG 的 DEFLATE 第一階段):搜尋緩衝找最長匹配、輸出 (offset,length,nextChar) 三元組,邊壓邊解示範往返 O(n·w)
單主題深入 34 項

一頁一個主題,比上面的比較頁講得深。這組的互動程度不一——部分有逐步執行,部分只有整段播放。

排序演算法 Bubble/Selection/Insertion/Merge/Quick 五種逐一動畫 更多排序 Heap/Counting/Radix/Bucket 四種非比較與樹式排序 搜尋演算法 Linear O(n) 與 Binary O(log n) 逐步比較 雙指標 兩數之和、移除元素、回文檢查三題,動畫與即時兩種模式 滑動視窗 固定大小找最大和、可變大小找最短子陣列 前綴和與差分陣列 Build/Query 對照 Init/Add/Restore,兩種技巧並列 單調棧 下一個更大元素、最大矩形、每日溫度三題 遞迴 階乘、費波那契、河內塔三個遞迴樹展開 分治法 歸併排序、最大子陣列和、快速冪,附分治三步驟拆解 回溯法 N 皇后、全排列、子集,列出所有解與剪枝要點 貪心演算法 活動選擇、分數背包、硬幣找零(含貪心失效的情況) 動態規劃 費波那契、最長共同子序列、硬幣找零三張 DP 表 進階動態規劃 Edit Distance、矩陣鏈、TSP bitmask、樹上最大獨立集 折半搜尋 陣列分割與合併搜尋兩階段,附複雜度對照 隨機化演算法 Fisher-Yates 洗牌、蓄水池取樣、蒙地卡羅估 Pi、Miller-Rabin 位元運算 位元運算基礎與常用技巧,點擊逐個播放 數學演算法 質數篩、GCD/LCM、帕斯卡三角,附常用公式 博弈論 Nim 遊戲可與電腦對戰、井字棋 Minimax AI 圖演算法 Dijkstra 最短路徑與 A* 尋路兩種走法 進階圖論 Prim MST、Kruskal MST、Tarjan SCC、拓撲排序,附三種範例圖 網路流 Edmonds-Karp 最大流,流網路圖與殘餘圖容量並列 歐拉路徑 柯尼斯堡七橋等範例,可自建圖並檢查歐拉路徑/迴路 2-SAT 二元可滿足性 蘊含圖建構、SCC 分析、求解結果三段 Binary Lifting 與 LCA 樹結構與 2^k 祖先表 up[node][k] 對照 Tarjan 離線 LCA DFS 遍歷與查詢結果,附離線 vs Binary Lifting 線上比較 重心分解 原始樹的分解過程與重心分解樹建構同步呈現 樹鏈剖分 重邊高亮、重鏈上色、節點資訊表三視圖 Mo's 莫隊算法 陣列與指標移動,查詢列表排序前後對照 進階資料結構 HLD、重心分解、Mo's、KD-Tree 2D 分割、Treap 五個主題一頁 字串演算法 文本與模式對照的匹配過程,含 KMP 滾動雜湊 雙雜湊比較,示範單雜湊碰撞問題 Aho-Corasick AC 自動機 Trie 含 failure links,逐字掃描文本 凸包 Graham Scan 動畫,可隨機產生點集 掃描線 矩形聯集面積,事件排序與掃描過程
AI 時代 19 項
相似度雜湊 MinHash/LSH/SimHash NEW 簽名估計 Jaccard+banding 候選對 vs 加權位元投票漢明距離 O(nk) 建構 串流概要 Count-Min/HyperLogLog NEW 計數矩陣取 min 高估頻次 vs 前導零暫存器估基數 O(d) 每事件 取樣演算法 Reservoir/Alias NEW 蓄水池串流取樣+加權 A-Res vs 別名表 O(1) 抽樣,頻率對照理論 O(n) / O(1) 每抽 序列解碼 Viterbi/Beam Search NEW HMM DP 表回溯最佳路徑 vs beam 剪枝與全域最優對照 O(T·S²) / O(T·B·V) 文本演算法 Myers Diff/BPE NEW 編輯圖 snake 對角線最短編輯腳本 vs 子詞合併分詞 O((N+M)D) / O(V·merges) 近似最近鄰 HNSW NEW 多層圖貪婪下降+ef 搜尋,結果與暴力真值對照 O(log n) 查詢(近似) 向量壓縮 PQ/IVF NEW 子空間量化碼本+ADC 誤差對照 vs 倒排分群 nprobe 掃描 O(k·d) 查詢 混合檢索 BM25/RRF NEW 逐詞打分長度正規化排名 vs 倒數排名融合雙路檢索 O(q·N) / O(R) 蒙地卡羅樹搜尋 MCTS/UCB NEW 四相迭代賽局樹成長,root 統計對照 minimax 精確解 O(N·深度) 每迭代 反向模式自動微分 AutoDiff NEW 計算圖前向求值+逆拓撲序 adjoint 累加,三方梯度互證 O(節點數) 分散式快取 Consistent Hashing/KV Cache NEW 雜湊環虛擬節點搬移對照 vs 前綴快取命中與 LRU 逐出 O(log V) 查詢 推測解碼 Speculative Decoding NEW 小模型草擬大模型驗證回滾,輸出等價保證與呼叫數對照 O(T/k) 驗證呼叫 LLM 取樣 Temperature/Top-k/Top-p NEW Temperature 重塑分佈 + top-k/top-p 截斷正規化,抽樣落點與多種子頻率對照理論 O(V log V) 每步 Heavy Hitters Misra-Gries/Space-Saving NEW k 個計數器單次掃描找串流 top-k 高頻項:MG 連坐減低估 vs SS 繼承加高估,對照暴力精確真值 O(k) 每項 受限解碼 Grammar/DFA-constrained NEW LLM 結構化輸出合法性保證:DFA 每步遮罩非法 token、只在合法 token 重新正規化再選字,遮罩前後分佈與合法性對照 O(T·V) MMR 最大邊際相關 NEW RAG 檢索後去冗餘重排:在相關度與多樣性間平衡,示範不同 λ 選出不同順序 O(n·k²) 差分隱私 Randomized Response NEW 隨機化回答:每人擲硬幣照實/隨機答換可否認性,彙總去偏還原母體比例,單次雜訊 vs 多種子收斂對照 O(n) 收集 / O(1) 去偏 Scaled Dot-Product Attention 注意力 NEW Q·Kᵀ/√d → 逐列 softmax 權重熱圖 → 加權求和·V;獨立真值驗每列和=1、同幀對照不縮放 √d 使 softmax 過尖 O(n²·d) 分群 k-means / Lloyd 迭代 NEW 指派→更新兩步交替 質心遷移+inertia 單調不增 vs 暴力最近鄰真值(PQ 碼本底層) O(n·k·i)