0
A
回答
0
什麼是在「O(n)」中使用的「n」?如果n表示搜索字符串中的字符數,則可以在O(n)時間內執行以下代碼。 for循環的
/* structure of Trie node */
struct trieNode {
char *value;
childNode children();
int childCount;
}
/* structure for childnode in a Trie node. Whichi contains 'key' and pointer to child node */
struct childNode {
char key;
trieNode *node;
}
/* setup Trie and search string. (not real code) */
trieNode root=createTrinode(...) ; /* Setup Trie of your problem. */
char* searchString = inputSearchString(...); /* get string for search */
int i;
trieNode curNode;
curNode = root;
for i=0 to len(searchString)-1
{
curNode = findChildren(curNode,searchString(i)); /* findChildren function returns childnode of first argument, whose key is equal to second argument. (Code of findChildren is omitted) */
}
/* curNode is the traversed leaf node by searchStrin */
指數是0到n(searchString的長度)-1,因此該代碼可以執行JN O(n)的時間。
此代碼不考慮serach-string不包含在給定的Trie中的情況。
相關問題
- 1. O(n)中的2鍵搜索算法
- 2. O(log n)中的二叉搜索樹?
- 3. 時間複雜度 - O(n^2)到O(n log n)搜索
- 4. 圖形搜索O(log(N)(N + M)
- 5. 代碼O(nlog(n))的T(n)如何?
- 6. 大O和T(N)混淆
- 7. 復發T(N)= T(N/3 + 5)+ T(2π/ 3 + 7)+ O(1)
- 8. 堆性能低下。 O(n)而不是\t O(日誌n)
- 9. T-SQL - 如何搜索字符串中的第n個字符
- 10. 爲什麼O(N日誌N)構建二進制搜索樹?
- 11. 如何在時間O(log(n))中搜索一個列表的算法?
- 12. 在漸近分析中,證明:O表示大O. O(f(n)+ g(n))= O(max {f(n),g(n)})
- 13. 在c#中搜索
- 14. 在JavaScript中將O(n^3)更改爲O(n^2)
- 15. C程序搜索FILE I/O
- 16. 如何解決如$ T(n)= T(n/2)+ T(n/4)+ O(m)這樣的遞歸關係$
- 17. 證明最大(O(f(n)),O(g(n)))= O(max(f(n),g(n))
- 18. 大O符號 - O(n日誌(N))對O(的log(n^2))
- 19. 從小於O(log(n))運行時間的排序數組中搜索
- 20. 在O(N)
- 21. 複雜性理論中的O(lg(n))* O(lg(n))
- 22. T(n)= T(n - sqrt(n))
- 23. 在O(log2n)中插入數據結構,但在O中搜索(1)
- 24. 在o(1)中訪問數組的第n個索引
- 25. O(n^2)中是O(mn)嗎?
- 26. 正在搜索不存在O(n)的值的哈希表? (線性探測)
- 27. AVL樹如何保證O(log(n))全天搜索
- 28. 在C#winform中搜索pdfs
- 29. C++:在向量中搜索
- 30. C#在Datagrid中搜索
Trie?樹?哪一個 ? – chouaib 2014-10-06 01:42:20
由於OP在標題和問題中列出了它,我認爲可以安全地說出trie,因爲它更具體到所討論的樹的類型。 – polarysekt 2014-10-06 01:51:20
@chouaib我正在考慮一個Trie! – coder101 2014-10-06 01:57:05