かなり大きなデータセットで並べ替えを行うための「timsort」アルゴリズムを調べていました:http: //timsort4net.codeplex.com/
通常Array.Sort(Keys, Items)
、Itemsは、並べ替え中に発生した位置の変更を識別するためのメソッドとして機能する整数配列である場合に使用します。
並べ替えアルゴリズムの実装を大幅に変更せずに、これと同じ結果を達成する方法はありますか?
かなり大きなデータセットで並べ替えを行うための「timsort」アルゴリズムを調べていました:http: //timsort4net.codeplex.com/
通常Array.Sort(Keys, Items)
、Itemsは、並べ替え中に発生した位置の変更を識別するためのメソッドとして機能する整数配列である場合に使用します。
並べ替えアルゴリズムの実装を大幅に変更せずに、これと同じ結果を達成する方法はありますか?
IListで定義された拡張メソッドを使用できます
public static void TimSort<T>(this IList<T> array, Comparison<T> comparer, bool buffered = true)
インデックスのリストを並べ替え、インデックスが指定された実際のオブジェクトを参照する比較を渡し、それらを比較して、負、正、またはゼロの値を返します。
お役に立てれば!