Pregunta

Estaba investigando el algoritmo "timsort" para ordenar mis conjuntos de datos bastante grandes: http://timsort4net.codeplex.com/

Normalmente utilizo Array.Sort(Keys, Items) donde Items es una matriz de números enteros que sirve como método para identificar los cambios de posición que se produjeron durante la clasificación.

¿Hay alguna forma de lograr este mismo resultado sin tener que modificar mucho la implementación del algoritmo de clasificación?

¿Fue útil?

Solución

Puede utilizar el método de extensión definido en IList

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

para ordenar la lista de índices y pasar una comparación que hace referencia a los objetos reales dados los índices, los compara y devuelve valores negativos, positivos o cero.

¡Espero que esto te ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top