标签: algorithm binary-tree
我基本上需要一种保证O(log n)删除的方法。这可以用二叉树来完成,还是最坏的情况是O(n)?
如果我每次平衡树怎么办?
请帮助
答案 0 :(得分:3)
您需要一个平衡的二叉树才能使保证工作。 红黑树是平衡树结构的一个例子,实施起来并不太难。
Red Black Trees (wiki)
这是一个nice lecture for that ..
答案 1 :(得分:2)
如果您正在寻找平衡的二叉树,可以使用“堆”
http://en.wikipedia.org/wiki/Heap_(data_structure)
答案 2 :(得分:1)
您需要Binary Search Tree
正如上面的维基页面所说:
因此在最坏的情况下,它需要与树的高度成比例的时间
这意味着如果你可以使它始终保持平衡,你可以得到O(logN)进行删除