为什么使用两种不同的算法来排序数组?

use*_*444 10 java arrays sorting algorithm

在Arrays类中,快速排序用于排序基元,但是对于排序对象,它是合并排序.

我想知道为什么会这样?

Paŭ*_*ann 14

使用mergesort的原因是他们想要一个稳定的算法 - 例如,相等的对象(by compareTo()compare())与之前的相对顺序相同.

对于原始人来说,平等意味着"不区分能力".当排序{5, 3, 5}{3, 5, 5}它时,五个中的哪个是之前的第一个并不重要.所以我们可以在这里使用更快(和非稳定)的快速排序算法.