![](/img/trans.png)
[英]Is the sorting algorithm used by .NET's `Array.Sort()` method a stable algorithm?
[英]Which sorting algorithm is used by .NET's Array.Sort() method?
.NET的Array.Sort()
方法使用哪种排序算法?
Array.Sort()
选择三种排序算法之一,具体取决于输入的大小:
2 * log^N
,其中N
是输入数组的范围,则它使用堆排序算法。 实际上,它看起来并不那么容易。 看起来.NET正在根据输入和他的大小实现一组不同的排序算法。 我曾经从CLR反编译Array.Sort()
,似乎他们正在使用Heap,Insertion和Quicksort。
如上所述快速排序。 但它并不适用于所有数据!
通过使用反射器:它在本地dll中进行排序 - >对于1D数组的最常见情况,升序。 但是,其他情况在托管代码中排序 - 应用的优化很少。 因此他们的速度通常要慢得多。
它使用快速排序进行排序
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.