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