В стандартной библиотеке Java существует ли метод, позволяющий сортировать ArrayList
на месте, то есть используя O(1)
дополнительное хранилище?Java: сортировка ArrayList на месте
Collections.sort(List<T>)
не выполняет это требование, поскольку он
сбрасывает указанный список в массив, сортирует массив и итерацию по списку перезапуске каждый элемент из соответствующей позиции в массиве.
Если в стандартной библиотеке нет ничего, какие сторонние библиотеки могут быть использованы для этого?
Единственное, что это берет копию массива, и поэтому использует O (n) дополнительное хранилище в соответствии с Collections.sort. – Adamski
В Java 7 не требуется копия. Я не проверил Java 6. –
Интересно. Я действительно очень удивлен, что они изменили поведение, чтобы вернуть базовый массив; может представить, что это вызовет множество тонких ошибок для людей, обновляющихся с Java 6. – Adamski