2011-05-02 4 views

Répondre

5

Vous n'appelez pas quoi que ce soit. Il possède des méthodes de tri privées à java.util Vous le laissez les appeler lorsque vous appelez la fonction Arrays.sort() ou quelque chose comme ça.

Cela ressort clairement du commentaire:

/* 
* 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 en juger par le temps de mon dernier commentaire, cela a pris moins de 15 minutes pour le faire:

Et e résultat:

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

C:\Documents and Settings\glowcoder\My Documents> 
+0

+1 Vous m'avez encore une fois – MByD

+0

damn. Connaissez-vous une source "complète" du Tim Sort en Java? Je suppose que je ne peux pas encore appeler la méthode puisque nous ne sommes pas en Java 7. = x Merci. – Seva

+1

@Seva avez-vous besoin d'appeler TimSort? Et, y a-t-il quelque chose qui vous empêche de copier/coller cela et de faire une méthode ou deux 'public' et de changer dans quel paquet il se trouve? – corsiKa