Index Array con TimSort in C #
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?
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!