二叉搜索树的时间复杂度

时间:2014-10-09 22:40:04

标签: big-o time-complexity

如果我对我的bst使用insert()函数,时间复杂度可能与O(n)和O(log n)一样糟糕。我觉得如果我有一个完美平衡的树,时间复杂度就是log n因为每次我走下“分支”时我都能忽略一半的树。如果我的树完全不平衡,它将是O(n)。我是否认为这是正确的?

1 个答案:

答案 0 :(得分:0)

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

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