@bestsss - спасибо, вот что я искал! Я обновил свой ответ сейчас.
a6 и быстрая сортировка, и сортировка слиянием использовались вArrays#sort
, для примитивных и объектных массивов соответственно. В Java7 они оба изменились, чтобыDualPivotQuicksort и Тимсорт.
В источнике для новой быстрой сортировки в нескольких местах появляется следующий комментарий (например, строка 354):
/*
* Here and below we use "a[i] = b; i++;" instead
* of "a[i++] = b;" due to performance issue.
*/
Как это проблема производительности? Разве компилятор не уменьшит их до одного и того же?
В более широком смысле, какова хорошая стратегия для самостоятельного изучения этого? Я могу запустить тесты, но мне больше интересно анализировать любые различия в скомпилированном коде. Однако я не знаю, какие инструменты использовать и т. Д.