我以通常的方式将大量节点存储在二叉树中,以便根据存储在每个节点中的某个值对它们进行排序。也就是说,可以从左到右递归树,并按排序顺序获取总数。
但是我有一个大的独立指针数组指向树中的节点子集,并且此数组中的顺序是随机的。
我希望能够快速排序这个数组。有没有办法引用回二进制树结构来加快速度?如有必要,我可以将成员添加到任何节点。
谢谢!
答案 0 :(得分:1)
通过在节点中添加标志,您可以将运行时间设置为O(t+a)
(t是树的大小,a是数组的大小)。这是通过首先设置数组中的标志然后遍历树并选择标记的值来完成的。
如果您的树只比阵列大log a
倍,这只是有利的。如果t>>快速排序肯定是首选方法,因为它的运行时间为O(a * log a)
。