我正在调查“timsort”算法,对我相当大的数据集进行一些排序: http://timsort4net.codeplex.com/
通常我使用Array.Sort(Keys, Items)
其中Items是一个整数数组,用作识别排序期间发生的位置变化的方法。
有没有办法在不必大量修改排序算法的实现的情况下实现相同的结果?
答案 0 :(得分:2)
您可以使用IList上定义的extension method
public static void TimSort<T>(this IList<T> array, Comparison<T> comparer, bool buffered = true)
对索引列表进行排序,并传入一个比较,该比较引用给定索引的真实对象,比较它们并返回负值,正值或零值。
希望这有帮助!