Pro*_*mer 6 .net sorting algorithm
当我们IComparer在课堂上实现时,有没有人知道.net使用了哪种排序算法?
IComparer
bdu*_*kes 10
QuickSort似乎就是这样.
IComparer的文档说
此接口与Array.Sort和Array.BinarySearch方法结合使用.
该的Array.Sort文档说
此方法使用QuickSort算法.此实现执行不稳定的排序; 也就是说,如果两个元素相等,则可能不会保留它们的顺序.相反,稳定的排序保留了相等元素的顺序.
Răz*_*van 6
在当前的文档称,它的类型的内省排序,混合排序algoritm:
是这样工作的:
如果分区大小少于 16 个元素,则使用 插入排序算法
如果分区数超过 2 * LogN,其中 N 是输入数组的范围,则使用堆排序算法。
否则,它采用的是快速排序算法。
来源在这里
Kon*_*lph 3
根据MSDN 的说法,.NET 使用 QuickSort。顺便说一句,该方法绝对不依赖于比较器(只要它是基于比较的),为什么 .NET 根据您是否提供自定义比较器而使用不同的方法?
归档时间:
17 年,7 月 前
查看次数:
1722 次
最近记录:
8 年,3 月 前