.net在IComparer中使用哪种排序算法

.net在IComparer中使用哪种排序算法,.net,algorithm,sorting,.net,Algorithm,Sorting,当我们在班上实现IComparer时,有人知道.net使用哪种排序算法吗?根据.net使用的快速排序。顺便说一句,该方法完全不依赖于比较器(只要它是基于比较的),为什么.NET应该根据是否提供自定义比较器而使用不同的方法呢?似乎就是这样 上面的文件说 此接口与和方法结合使用 文件上说 此方法使用快速排序算法。此实现执行不稳定排序;也就是说,如果两个元素相等,它们的顺序可能不会被保留。相反,稳定排序保留相等元素的顺序 据说它使用了一种混合排序算法: 是这样工作的: 如果分区大小小于16个元素,则使

当我们在班上实现
IComparer
时,有人知道.net使用哪种排序算法吗?

根据.net使用的快速排序。顺便说一句,该方法完全不依赖于比较器(只要它是基于比较的),为什么.NET应该根据是否提供自定义比较器而使用不同的方法呢?

似乎就是这样

上面的文件说

此接口与和方法结合使用

文件上说

此方法使用快速排序算法。此实现执行不稳定排序;也就是说,如果两个元素相等,它们的顺序可能不会被保留。相反,稳定排序保留相等元素的顺序

据说它使用了一种混合排序算法

是这样工作的:

  • 如果分区大小小于16个元素,则使用 插入排序算法

  • 如果分区数超过2*LogN,其中N是范围 对于输入数组,它使用一个Heapsort算法

  • 否则,它将使用快速排序算法


  • 从.NET 4.5开始:现在插入排序n@Laoujin
    可枚举.OrderBy
    使用哪种算法?