在 .NET 中实现 IComparable 之类的东西时,任何人都可以建议 .NET 使用什么排序算法对底层数据进行实际排序?使用的算法是可定制的还是可选择的?
问问题
13718 次
2 回答
17
有两个大佬。
Array.Sort
(对数组进行就地排序)使用不稳定的 Quicksort。
List<T>.Sort
根据 MSDN 文档,这与 内部使用的实现相同:
此方法使用
Array.Sort
,它使用 QuickSort 算法。
该Enumerable.OrderBy<TSource, TKey>
方法(对输入序列的副本进行排序)使用稳定的 Quicksort。
据我所知,这是 .NET BCL 中仅有的两种排序实现。
于 2011-05-11T03:10:39.993 回答