Trie 是一種樹狀結構,可以用來在大量字串中快速搜尋某個字串。雖然這個問題也可以用 hash table 來解決,但在以下情況下,Trie 有其獨特的優勢:
- 找出每個有特定前綴的字串。
- 按照字典順序列出所有字串。
寫code,學習,練習表達
Trie 是一種樹狀結構,可以用來在大量字串中快速搜尋某個字串。雖然這個問題也可以用 hash table 來解決,但在以下情況下,Trie 有其獨特的優勢:
Binary search 是一種在有序陣列做搜尋的演算法,在最壞的狀況下,其時間複雜度為 O (log n)
對數時間,相當高效。
以下是 binary search 的框架,但只適用於有序且不含重複元素的 Array :
int bsearch(vector<int>& a, int value) {
int low = 0;
int high = a.size()-1;
while (low <= high) {
int mid = low + ((high-low)>>1);
if (a[mid] == value) {
return mid;
} else if (a[mid] < value) {
low = mid + 1;
} else if (a[mid] > value) {
high = mid - 1;
}
}
return -1;
}