Sorting 一个可靠的例子(或一些业务用例),其中稳定排序产生了显著的差异

Sorting 一个可靠的例子(或一些业务用例),其中稳定排序产生了显著的差异,sorting,collections,mergesort,stable-sort,timsort,Sorting,Collections,Mergesort,Stable Sort,Timsort,我想知道稳定排序将产生巨大影响的场景 以前版本的JAVA对collections.sor API使用了合并排序,这是一种稳定的排序,而对Array.sort使用了快速排序。当前版本的Java使用Tim排序,这也是稳定的排序。 现在,如果你看到大多数流行的语言,比如Python、Java、Scala,都在使用Tim Sort。我想知道Tim Sort作为一个使用稳定的Sort,它的重量是多少。 推动使用稳定排序技术的强大动机是什么?通过稳定排序,一个数据集可以一次按一个字段进行排序,从最低有效到最

我想知道稳定排序将产生巨大影响的场景

以前版本的JAVA对collections.sor API使用了合并排序,这是一种稳定的排序,而对Array.sort使用了快速排序。当前版本的Java使用Tim排序,这也是稳定的排序。 现在,如果你看到大多数流行的语言,比如Python、Java、Scala,都在使用Tim Sort。我想知道Tim Sort作为一个使用稳定的Sort,它的重量是多少。
推动使用稳定排序技术的强大动机是什么?

通过稳定排序,一个数据集可以一次按一个字段进行排序,从最低有效到最高有效。例如,一些电子表格程序限制一次按3个字段排序。由于电子表格排序是稳定的,因此可以进行6字段排序,首先按3个最低有效字段排序,然后按3个最高有效字段排序。保留原始顺序可能是一个理想的副作用。假设数据集按名称排序,然后该数据集的副本按出生日期排序,则具有相同出生日期的元素将保留其原始名称顺序,而无需进行复杂的比较


快速排序和合并排序也存在性能问题。通常,合并排序执行更多的移动,但比较较少。如果比较开销大于移动开销,则合并排序会更快。例如,如果对指向对象的指针数组进行排序(我认为Java就是这样实现对象数组的),那么合并排序可以更快,因为移动的是指针,比较的是对象。

感谢您的精彩解释。对迟来的回复表示歉意。