Индексный массив с TimSort в C # - PullRequest
2 голосов
/ 18 февраля 2012

Я искал алгоритм "timsort" для сортировки моих довольно больших наборов данных: http://timsort4net.codeplex.com/

Обычно я использую Array.Sort(Keys, Items), где Items - это целочисленный массив, который служит методом для определения изменений положения, произошедших во время сортировки.

Есть ли способ получить тот же результат, не сильно изменяя реализацию алгоритма сортировки?

1 Ответ

2 голосов
/ 18 февраля 2012

Вы можете использовать метод расширения , определенный в IList

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

, чтобы отсортировать список индексов и передать Сравнение, которое ссылается на реальные объекты по данным индексам, сравнивает ихи возвращает отрицательные, положительные или нулевые значения.

Надеюсь, это поможет!

...