Pergunta

Eu estava examinando o algoritmo "timsort" para fazer alguma classificação em meus conjuntos de dados bastante grandes: http://timsort4net.codeplex.com/

Normalmente eu uso Array.Sort(Keys, Items), onde Items é uma matriz de inteiros que serve como um método para identificar as mudanças de posição que ocorreram durante a classificação.

Existe alguma maneira de obter esse mesmo resultado sem ter que modificar muito a implementação do algoritmo de classificação?

Foi útil?

Solução

Você pode usar o método de extensão definido em IList

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

para classificar a lista de índices e passar uma comparação que faz referência aos objetos reais dados os índices, os compara e retorna valores negativos, positivos ou zero.

Espero que isso ajude!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top