Kar*_*ikh 12 big-o runtime trie data-structures
用于插入和搜索的trie数据结构的最佳/最差/平均情况复杂度(以Big-O表示法)是多少?
我认为这适用O(K)于所有情况,其中K是插入或搜索的任意字符串的长度.有人会证实吗?
k:您搜索或插入的字符串的长度.
For Search
Worst: O(26*k) = O(k)
Average: O(k) # In this case, k is an average length of the string
Best: O(1) # Your string is just 'a'.
Run Code Online (Sandbox Code Playgroud)
Trie的复杂性不会随着您搜索的字符串数量而变化,只会随搜索字符串的长度而变化.这就是当搜索的字符串数量很大时使用Trie的原因,比如在英语词典中搜索整个词汇表.
For Insertion
Worst: O(26*k) = O(k)
Average: O(k)
Best: O(1)
Run Code Online (Sandbox Code Playgroud)
所以,是的,你是对的.您可能已经看过O(MN)并且可能让您感到困惑,但它只是在谈论您何时需要进行N次以上的O(k)操作.