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.

http://cr.openjdk.java.net/~martin/webrevs/openjdk7/timsort/raw_files/new/src/share/classes/java/util/timsort.java

È stato utile?

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:

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
scroll top