排序演算法全集(C++17)
每個檔案都是獨立、可編譯執行的示範程式,內含:原理註解、複雜度分析、 穩定性說明、多組測試(含空陣列、單元素、已排序、反向、重複元素等邊界情況)。
阅读文章 →排序演算法 — 教材(含 C++ 範例)
1. 總覽與比較1總覽與比較 2. 氣泡排序(Bubble Sort)2氣泡排序bubblesort 3. 選擇排序(Selection Sort)3選擇排序selectionsort 4. 插入排序(Insertion Sort)4插入排序insertionsort 5. 希爾排序(Shell Sort)5希爾排序shellsort 6. 合併排序(Merge Sort)6合併排序mergesort 7. 快速排序(Quick Sor
阅读文章 →Splay Tree(伸展樹)演算法完整教學
1. Splay Tree 簡介與動機1splaytree簡介與動機 2. 基本性質與設計理念2基本性質與設計理念 3. 基本旋轉(Left / Right Rotation)3基本旋轉leftrightrotation 4. Splaying 操作 — 三種情況4splaying操作三種情況 4.1 Zig(單旋)41zig單旋 4.2 ZigZig(同向雙旋)42zigzig同向雙旋 4.3 ZigZag(異向雙旋)43zigzag
阅读文章 →第三方支付平台前後端完整教學 — 類 Stripe / PayPal 架構、API 對接與 Webhook
本教材介紹第三方支付平台的全端架構與 API 對接方式,並以類似 Stripe.com、PayPal 的產品型態作為參考。 內容涵蓋商戶前端、商戶後端、支付平台、收單銀行、卡組織、Webhook、退款、對帳、安全與錯誤處理。 注意:Stripe、PayPal 的實際 API 會隨版本與地區改變。本文使用教學用 API 形狀說明設計思想,實作時應以官方文件與合約為準。
阅读文章 →Tree、Binary Tree、Balanced Binary Tree — 完整教學
1. Tree(樹)基本概念1tree樹基本概念 2. Tree 的表示法2tree的表示法 3. Tree 的遍歷(Traversal)3tree的遍歷traversal 4. Binary Tree(二元樹)4binarytree二元樹 5. Binary Tree 的性質與定理5binarytree的性質與定理 6. Binary Tree 的遍歷6binarytree的遍歷 7. Binary Search Tree(二元搜尋樹
阅读文章 →練習題完全詳解[0.3em] 不可判定性 · NP 完備 · DPLL · 2SAT · 機率圖靈機 · 單純形法 · TSP[0.5em] 5CCS2FC2 Foundations of Computing II — 測驗題逐題解析
本詳解的使用方式 十四張截圖共包含: :不可判定性測驗,共 5 題選擇題,主題對應 Week 10(可判定語言、停機問題、Entscheidungsproblem)。 :綜合測驗,共 11 題,涵蓋 NP 類別、SAT CLIQUE 歸約、主定理、DPLL 演算法、2SAT 蘊涵圖、機率圖靈機、單純形法、TSP 的 2-opt 與近似演算法。 每題的格式為: 。建議先自己作答,再對照解析。
阅读文章 →第一部分:選擇題(第 1–10 題,共 50 分)
本試卷共 13 題,限時兩小時: [nosep] (共 50 分):選擇題,每題有一個或多個正確選項。必須選出正確選項且多選,選錯會倒扣分數。 (每題 25 分):三題長答題中作答。 本詳解涵蓋全部 13 題:先完整重述並解析每個題目在問什麼、考哪個觀念,再一步一步推導出解答。
阅读文章 →第一部分:選擇題(第 1–10 題,共 50 分)
本試卷共 13 題,限時兩小時: [nosep] (共 50 分):選擇題,每題有一個或多個正確選項。必須選出正確選項且多選,選錯會倒扣分數。 (每題 25 分):三題長答題中作答。 本詳解涵蓋全部 13 題:先完整重述並解析每個題目在問什麼、考哪個觀念,再一步一步推導出解答。
阅读文章 →計算理論基礎:有限自動機、正則語言與圖靈機[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第一週內容編寫)
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 複習與的形式定義、組態(configuration)與計算(computation)。 理解與,以及它們與有限自動機的等價性(Kleene 定理)。 透過鴿籠原理證明 L=anbn ,並掌握一般化工具——。 認識的形式定義、接受準則,以及「機器可能不停機」帶來的根本差異。 認識及其與確定性圖靈機的等價性。 理解 的內容、地位與支持證據
阅读文章 →計算的極限[0.3em] 不可判定性與 Entscheidungsproblem 學習教材[0.5em] 5CCS2FC2 Foundations of Computing II — Week 10 白話講義
本講義在講什麼? 這份教材對應 Week 10 的兩份投影片: :什麼是「可判定的語言」?是否所有問題都能用電腦解決?如何把圖靈機本身編碼成字串,並造出一台能模擬所有機器的「萬能圖靈機」? :希爾伯特提出的「判定問題」(Entscheidungsproblem)——是否存在一個演算法,能判斷任何邏輯公式是否恆真?答案是「不存在」,而本講義將白話解釋為什麼。 一句話總結本週主題:
阅读文章 →計算的極限:不可判定性[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第十週內容編寫)[2pt] 通用圖靈機、對角線論證、停機問題與 Entscheidungsproblem
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 理解的三要件:健全(sound)、完備(complete)、必停機(terminating)。 掌握與的概念。 用證明:不可判定的語言。 完整掌握不可判定的證明(自我指涉與矛盾)。 認識其他不可判定問題:、、、、,與技巧、Rice 定理。 理解希爾伯特的 為何不可判定,及其歷史意義(Turing 1936、Church)。
阅读文章 →計算極限之外:可計算枚舉性與映射歸約[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第十一週內容編寫)[2pt] 半可判定性、交錯模擬、co-C.E. 與映射歸約
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 理解語言:放棄「必停機」、只保留健全與完備。 證明與非空問題是 C.E.,並掌握技巧。 理解 與核心定理:L與皆 C.E. L可判定。 由此推出、C.E.——存在「連半個演算法都沒有」的問題。 掌握A B的正式定義、基本定理與使用方法。 完整走過兩個歸約:與。
阅读文章 →複雜度類 NP 專題[4pt] 從「驗證 vs. 求解」談起,並詳述百萬美元問題 P vs NP
[notebox,title=本講學習目標] [leftmargin=2em,itemsep=1pt] 從日常直覺理解 的核心精神:。 精確掌握 的:非確定性圖靈機(NDTM)與。 透過(數獨、SAT、子集和、地圖著色、團、旅行推銷員)體會何謂 問題。 釐清 、、、-complete 之間的關係。 理解 這個百萬美元問題:它在問什麼、歷史、若 = 的後果、現況與常見誤解。
阅读文章 →P 與 NP:百萬美元問題[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第二週內容編寫)
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 掌握O, , 與常見成長階層。 理解T_M(n)與複雜度類、的定義,以及兩者的關係。 認識:真值表、DNF/CNF 正規形,並證明。 理解與X Y,以及、的定義與證明策略。 透過兩個經典歸約與,實際操作「NP-完備性證明」。 理解 問題的內容、重要性與現況。
阅读文章 →數學歸納法:代入法
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 熟練與,並用以證明遞迴關係的封閉式解。 理解的三步驟,並掌握兩個經典演算法:與。 學會由演算法,再求其漸進成長率。 精通的三種情形,並能快速套用。 理解 如何把任意 問題的計算「編碼成布林公式」,證明 是 NP-complete。
阅读文章 →圖論演算法導論[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第四週內容編寫)[2pt] BFS / DFS、最小生成樹、拓撲排序與強連通元件
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 認識與圖演算法的時間度量T(|V|,|E|)。 掌握與,並理解其O(|V|+|E|)複雜度。 理解,精通 與 兩個貪婪演算法及其正確性(割性質/環性質)。 認識與。 理解、凝聚圖為 DAG 的證明,以及 兩趟 DFS 演算法。
阅读文章 →SAT 求解導論[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第五週內容編寫)[2pt] 受限 SAT、2-SAT 與蘊涵圖、DPLL 與貪婪局部搜尋
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 理解:第一個 NP-complete 問題、所有 NP 問題的「通用語言」。 掌握與兩條多項式歸約鏈,特別是 的子句拆分技巧。 理解:蘊涵圖 + 強連通元件,並掌握其充要條件與正確性證明。 認識另一個容易的變體:。 掌握實務 SAT 求解的核心:、(單位傳播、純文字消去)與。
阅读文章 →近似演算法與旅行推銷員問題[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第七週內容編寫)[2pt] 最佳化問題、近似比、2OPT 演算法與不可近似性
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 分辨與,並理解最佳化問題的解空間、成本函數與全域/區域最佳。 認識,理解其判定版本是 NP-complete,以及最佳化版與判定版的等價性。 掌握的定義、R-可近似與不可近似的概念。 理解 (MST + 前序走訪 + swap),並證明它對 的近似比為 2。 認識 ,以及的證明。
阅读文章 →線性規劃與整數規劃[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第八週內容編寫)[2pt] 線性規劃、單純形法、整數規劃與分枝定界
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 理解:線性目標函數、線性限制式、可行區域與最佳解,並會用矩陣形式A表達。 會把實際問題(能源調度、工作指派)成線性/整數規劃。 掌握:鬆弛變數、表格(tableau)、樞軸運算,並能完整解出一個小型 LP。 知道單純形法最壞情況是(Klee–Minty),但 LP 本身可在求解(Khachiyan)。 理解是 NP-hard(),並掌
阅读文章 →機率圖靈機與隨機複雜度類[4pt] 完整教材(依據 5CCS2FC2 Foundations of Computing II 第九週內容編寫)[2pt] 機率與期望值、機率圖靈機、BPP 與 ZPP
[notebox,title=本週學習目標] [leftmargin=2em,itemsep=1pt] 複習與。 掌握與其線性性質、、與標準差。 理解:機率轉移函數、計算樹、分支機率與接受機率。 掌握隨機複雜度類 (有界錯誤)與 (零錯誤),及其對應的與演算法。 理解定理 的完整證明(馬可夫不等式的應用)。 認識擴充後的複雜度階層,以及 與 、 之間的未解問題。
阅读文章 →CS3334 Project: Find the Most Frequent Duplicate
Given a list of integers, find the most frequent duplicate element. A "duplicate" is an element that appears more than once. Among all duplicates, return the one with the highest frequency. If two or more duplicates shar
阅读文章 →Chapter 2: Algorithm Analysis — Comprehensive Teaching Materials
Source: Data Structures and Algorithm Analysis in C++, 4th Edition, Mark Allen Weiss
阅读文章 →Data Structures Implementations in C++
This repository contains educational C++ implementations of various data structures for teaching purposes.
阅读文章 →LeetCode Problem Downloader
This Python script downloads all problems from LeetCode and generates: An Excel file leetcodeproblems.xlsx containing problem metadata ID, title, difficulty, category, etc. Individual PDF files for each problem with deta
阅读文章 →