Domanda

Stavo esaminando l'algoritmo "timsort" per eseguire l'ordinamento sui miei set di dati abbastanza grandi: http://timsort4net.codeplex.com/

In genere utilizzo Array.Sort(Keys, Items) dove Items è un array di numeri interi che funge da metodo per identificare i cambiamenti di posizione avvenuti durante l'ordinamento.

Esiste un modo per ottenere lo stesso risultato senza dover modificare pesantemente l'implementazione dell'algoritmo di ordinamento?

È stato utile?

Soluzione

È possibile utilizzare il metodo di estensione definito su IList

public static void TimSort<T>(this IList<T> array, Comparison<T> comparer, bool buffered = true)

per ordinare l'elenco di indici e passare un confronto che fa riferimento agli oggetti reali dati gli indici, li confronta e restituisce valori negativi, positivi o zero.

Spero che questo aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top