【问题标题】:time complexity for binary search trees二叉搜索树的时间复杂度
【发布时间】:2014-10-09 22:40:03
【问题描述】:

如果我为我的 bst 使用 insert() 函数,时间复杂度可能与 O(n) 一样糟糕,与 O(log n) 一样好。我假设如果我有一个完美平衡的树,时间复杂度是 log n,因为每次我沿着“分支”走下去时,我都能忽略树的一半。如果我的树完全不平衡,那将是 O(n)。我这样想对吗?

【问题讨论】:

  • 是的,伙计..你是对的。

标签: big-o time-complexity


【解决方案1】:

是的,这是正确的,参见例如维基百科,http://en.wikipedia.org/wiki/Binary_search_tree#Searching

如果您使用例如C++ STL std::map 或 std::set,你会得到一个红黑平衡的树。另外值得注意的是,使用这些 STL 数据结构,您可以 100% 地获得这种性能,这在例如硬实时系统。哈希表甚至更快,但不像红黑树那样在 100% 的时间内都快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多