树排序是常用的教科书排序算法之一,该算法将待排序列表中的所有元素插入到一个二叉树中,然后遍历该树以获得元素的顺序。
有没有哪种情况下,树排序比其他也需要O(n log n)时间的排序算法更好,比如快速排序,合并排序和堆排序?
它似乎不是很有用,因为它总是需要额外的空间来存储树,而其他的可以就地完成。而且为所有这些树节点分配内存也可能会使其变慢。
发布于 2016-07-15 02:01:04
我能理解的一种情况是在外部排序的情况下
例如,在外部排序的情况下,如果你有列表,如果k个元素的列表,总共有KN个元素。
考虑这样一种场景,您不能一次将它们全部存储在内存中,就像在ram的情况下,我们不能一次将所有元素都放入ram中。
在这种情况下,堆排序或树排序很有用,我们从每个n个列表中保留一个元素,因此堆的大小为K,我们可以通过从堆中取出最小或最大元素来对其进行排序
有关更多信息,-Check外部排序
https://stackoverflow.com/questions/38360871
复制相似问题