Pregunta

Timsort es un algoritmo que se utilizará de forma predeterminada en Java 7 para la clasificación.

Encontré esta fuente, pero no entiendo a qué método llamar ya que todos son privados. ¿Alguien puede entender? Gracias.

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

¿Fue útil?

Solución

No llamas nada.

Tiene métodos de clasificación que son paquetes privados para java.util. Dejas que los llame cuando llamas al Arrays.sort() función o algo así.

Esto está claro por el comentario:

/*
 * 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 juzgar en el momento de mi último comentario, esto tardó menos de 15 minutos en hacer:

Y el resultado:

C:\Documents and Settings\glowcoder\My Documents>java SortTest
Time for default: 4094ms
Time for timsort: 3813ms

C:\Documents and Settings\glowcoder\My Documents>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top