Какой метод позвонить в метод Timsort Method?
Вопрос
Timsort - это алгоритм, который будет использоваться по умолчанию в Java 7 для сортировки.
Я нашел этот источник, но я не понимаю, какой метод позвонить, поскольку все они являются частными. Кто -нибудь может понять? Спасибо.
Решение
Вы ничего не звоните.
У него есть методы сортировки, которые являются приватными для java.util
. Анкет Вы позволяете ему позвонить, когда вы звоните Arrays.sort()
функция или что -то вроде этого.
Это ясно дано комментарием:
/*
* The next two methods (which are package private and static) constitute
* the entire API of this class. Each of these methods obeys the contract
* of the public method with the same signature in java.util.Arrays.
*/
static <T> void sort(T[] a, Comparator<? super T> c) {
sort(a, 0, a.length, c);
}
static <T> void sort(T[] a, int lo, int hi, Comparator<? super T> c) {
...
}
Судя ко времени моего последнего комментария, это заняло менее 15 минут:
- http://pastebin.com/vnyuutid - sorttest.java
- http://pastebin.com/degafwzj - Timsort.java
И результат:
C:\Documents and Settings\glowcoder\My Documents>java SortTest
Time for default: 4094ms
Time for timsort: 3813ms
C:\Documents and Settings\glowcoder\My Documents>
Не связан с StackOverflow