我正在使用的数据集的一些特征显示出以下趋势:-
数组的前 50-70% 几乎已排序,最后 30% 完全打乱。
- 如果我将插入排序部分替换为shell排序会有效吗?
- 如果我将插入排序部分替换为shell排序会有效吗?
数组的前 50-70% 几乎已排序,最后 30% 包含很多海龟。
- 海龟的出现是否如此重要,以至于我应该放弃 Timsort 以支持这种 Comb 排序变体 -
在这里。他们的最佳案例性能显示 O(n),但平均案例性能对于使用 O(n log n) 的 Tim 排序更好,而 Comb 排序有 Ω (n log n) 但这是否需要修改版本的 Comb 排序或海龟密度考虑到?
- 海龟的出现是否如此重要,以至于我应该放弃 Timsort 以支持这种 Comb 排序变体 -
在这里。他们的最佳案例性能显示 O(n),但平均案例性能对于使用 O(n log n) 的 Tim 排序更好,而 Comb 排序有 Ω (n log n) 但这是否需要修改版本的 Comb 排序或海龟密度考虑到?
与第二种情况相同,但如果可以提高性能,部分排序的输出就可以了。例如,一个包含 1,000,000 个元素的数组可以在数组的前 1% 个槽中拥有其最小的 1%(即 10,000 个元素),但不需要在内部进行排序。
- 这可以通过在快速排序中的某个递归深度后拉出以将元素大致放置在它们应得的位置附近来完成。
如果相关,这里是我正在尝试修改的 Java 的 Timsort 代码 -代码。