Perché il metodo Arrays.sort di Java utilizza due diversi algoritmi di ordinamento per tipi diversi?

Il metodo Arrays.sort Java 6 utilizza Quicksort per matrici di primitive e unisci l’ordinamento per matrici di oggetti. Credo che la maggior parte del tempo Quicksort sia più veloce di unire l’ordinamento e costa meno memoria. I miei esperimenti supportano questo, sebbene entrambi gli algoritmi siano O (n log (n)). Quindi, perché sono utilizzati algoritmi diversi per tipi diversi?