Frage

Ich habe mir den "Timsort" -Algorithmus angesehen, um meine ziemlich großen Datenmengen zu sortieren: http://timsort4net.codeplex.com/

Normalerweise verwende ich Array.Sort(Keys, Items), wobei Items ein ganzzahliges Array ist, das als Methode zum Identifizieren der Positionsänderungen dient, die während der Sortierung aufgetreten sind.

Gibt es eine Möglichkeit, dasselbe Ergebnis zu erzielen, ohne die Implementierung des Sortieralgorithmus stark ändern zu müssen?

War es hilfreich?

Lösung

Sie können die in IList Erweiterungsmethode verwenden>

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

, um die Liste der Indizes zu sortieren und einen Vergleich zu übergeben, der auf die realen Objekte mit den angegebenen Indizes verweist, diese vergleicht und negative, positive oder Nullwerte zurückgibt.

Hoffe das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top