В настоящее время ваша реализация равна O(n^2)
, что означает, что по мере роста массива время будет увеличиваться квадратично.
Не вдаваясь в подробности использования mergesort (O(log(n) x n)
), самый быстрый способ - использовать встроенное решение Java для сортировки.
Collections.sort(list);
Ссылка на API .Существует также Collection.sort(list, comparator)
, который позволяет вам предоставить собственный компаратор .
Хотите, чтобы это было еще быстрее?Вы можете использовать новую функцию Java , которая позволяет выполнять параллельную сортировку с несколькими ядрами.Вот API .Обратите внимание, что Arrays.sort()
и Arrays.parallelSort()
принимают массив в качестве первого параметра.Вам нужно будет преобразовать список в массив, используя list.toArray()
.
Наконец, обратите внимание, что List#sort()
был введен только в Java 8.