<分区>
在 .NET 中实现 IComparable 之类的东西时,有人可以建议 .NET 使用什么排序算法对基础数据进行实际排序吗?所使用的算法是可定制的还是可选的?
<分区>
在 .NET 中实现 IComparable 之类的东西时,有人可以建议 .NET 使用什么排序算法对基础数据进行实际排序吗?所使用的算法是可定制的还是可选的?
最佳答案
有两个大问题。
Array.Sort
(就地对数组进行排序)使用 unstable Quicksort .
这与 List<T>.Sort
内部使用的实现相同,根据 MSDN 文档:
This method uses
Array.Sort
, which uses the QuickSort algorithm.
Enumerable.OrderBy<TSource, TKey>
方法(对输入序列的副本进行排序)使用稳定的快速排序。
据我所知,这是 .NET BCL 中仅有的两种排序实现。
关于c# - .NET框架实现了什么排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5958769/