Question

Je regardais dans l'algorithme « timsort » pour faire quelques tri sur mes jeux de données assez importantes: http://timsort4net.codeplex.com/

Typiquement j'utilise Array.Sort(Keys, Items) où les objets est un tableau d'entiers qui sert comme une méthode pour identifier les changements de position qui se sont produits pendant le tri.

Y at-il moyen de acheive ce même résultat sans avoir à modifier fortement la mise en œuvre de l'algorithme de tri?

Était-ce utile?

La solution

Vous pouvez utiliser la méthode l'extension définie sur IList

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

pour trier la liste des indices et passer dans une comparaison que les références les objets réels étant donné les indices, les compare et les rendements négatifs, des valeurs positives ou nulles.

Hope this helps!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top