Как реализован Collection.sort в? - PullRequest
1 голос
/ 21 марта 2012

Я использую Collection.sort(Array<objectX>, Comperator<objectX>) в Java / Android.

В моем компараторе я сравниваю два объекта по их идентификатору.

Как узнать, в каком методе производится сортировка?(быстрая сортировка, слияние ...)?

Ответы [ 2 ]

4 голосов
/ 21 марта 2012

Технически говоря, какой алгоритм использовать, не указано (другими словами, это специфичная для библиотеки времени выполнения).

С документация :

Например, алгоритм, используемый sort, не обязательно должен быть сортировкой слиянием, но он должен быть стабильным .

На практике он обычно выбирает один из нескольких методов сортировки на основе длины списка и т. Д. В стандартной реализации от Sun / Oracle он выбирает сортировку с вставкой (если длина меньше 7) и сортировку слиянием в противном случае. .

3 голосов
/ 21 марта 2012

Вы можете посмотреть код, если хотите:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Collections.java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...