【发布时间】:2011-03-17 06:42:57
【问题描述】:
在red-black tree 上插入的最坏情况运行时间是O(lg n),如果我在树上执行in-order walk,我基本上会访问每个节点,因此打印排序集合的总最坏情况运行时间将是 O(n lg n)
我很好奇,为什么red-black trees 不是优先于quick sort(其平均案例运行时间为O(n lg n))的排序。
我看到这可能是因为 red-black trees 没有就地排序,但我不确定,所以也许有人可以提供帮助。
【问题讨论】:
-
一般来说,搜索首选树。排序:排序一次。树:多次搜索。
-
按顺序遍历树需要 O(1) 时间每个访问的节点,所以它应该在 O(n) 而不是 O(n lg n) 中运行。
-
按顺序走需要堆栈空间,否则非 O(1) get_first 和后继。
标签: algorithm sorting quicksort red-black-tree