Nov 04 2025
Nick -
位運算
為什麼需要位運算
機器裏的數字表示方式和存儲格式就是二進制
位運算符
含義
運算符
示例
左移
0011 --- 0110
右移
0110 --- 0011
按位或
\
0011 \
1011 --- 1011
按位與
0
數據結構
,
算法
Nov 04 2025
Nick -
字典樹的數據結構
字典樹的數據結構
字典樹,即 Trie 樹,又稱單詞查找樹或鍵樹,是一種樹形結構。典型應用是用於統計和排 序大量的字符串(但不僅限於字符串),所以經常被搜索引擎系統用於文本詞頻統計。
它的優點是:最大限度地減少 無謂的字符串比較,查詢效率 比哈希表高。
字典樹的基本性質
結點本身不存完整單詞。
從根結點到某一結點,路徑上經過的字符連接起來,為該結點對應的 字符串。
每個結點的所有子結
數據結構
,
算法
Nov 04 2025
Nick -
算法動態規劃
動態規劃 Dynamic Programming
Wiki 定義: https://en.wikipedia.org/wiki/Dynamic_programming
“Simplifying a complicated problem by breaking it down into simpler sub-problems” (in a recursive manner)
Divide
數據結構
,
算法
Nov 04 2025
Nick -
算法深度優先搜索和廣度優先搜索
深度優先搜索和廣度優先搜索
深度優先
DFS Depth First Search
遍歷方式
遞歸
非遞歸,使用循環遍歷,需要棧後進先出的特性來輔助
廣度優先
BFS Breadth First Search
遍歷方式
循環遍歷,需要隊列先進先出的特性來輔助
貪心算法 Greedy
貪心算法是一種在每一步選擇中都採取在當前狀態下最好或最優(即最有利)的選擇,從而希望導致結果是全局最好
數據結構
,
算法
Nov 04 2025
Nick -
算法遞歸和回溯
遞歸
應用場景
一個問題的解可以分解成多個子問題的解。
這個問題與分解之後的子問題,除了數據規模不同,求解思路完全一樣。
存在遞歸終止條件。
遞歸代碼編寫技巧
找到如何將大問題分解成小問題的規律,基於此寫出遞推公式,推敲終止條件,將遞推公式和終止條件翻譯成代碼。
只要遇到遞歸,就把它抽象成一個遞推公式,不用想一層層的調用關係,不要試圖用人腦去分解遞歸的每個步驟。
遞歸代碼編寫難點
數據結構
,
算法