Quale metodo chiamare all'interno del metodo Timsort?
Domanda
Timsort è un algoritmo che verrà utilizzato per impostazione predefinita in Java 7 per l'ordinamento.
Ho trovato questa fonte, ma non capisco quale metodo chiamare poiché tutti sono privati. Qualcuno può capire? Grazie.
Soluzione
Non chiami niente.
Ha metodi di ordinamento che sono privati java.util
. Lo lasci chiamarli quando chiami il Arrays.sort()
funzione o qualcosa di simile.
Questo è chiarito dal commento:
/*
* 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) {
...
}
A giudicare al momento del mio ultimo commento, ci sono voluti meno di 15 minuti:
- http://pastebin.com/vnyuutid - Sortest.java
- http://pastebin.com/degafwzj - Timsort.java
E il risultato:
C:\Documents and Settings\glowcoder\My Documents>java SortTest
Time for default: 4094ms
Time for timsort: 3813ms
C:\Documents and Settings\glowcoder\My Documents>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow