Java和.NET:为什么默认使用不同的排序算法?

时间:2011-09-15 19:45:49

标签: java .net algorithm sorting language-design

只是想知道为什么Java.NET Framework默认使用不同的排序算法。

在Java中 Array.Sort()默认使用Merge Sort算法,而Wikipedia.com表示:

  

在Java中,Arrays.sort()方法使用合并排序或调整   quicksort取决于数据类型和实现效率   当少于七个数组元素时切换到插入排序   正在分类

在.NET Framework中 Array.Sort/List.Sort()使用Quick Sort作为默认排序算法(MSDN):

  

List.Sort()使用Array.Sort,它使用QuickSort算法。这个   实现执行不稳定的排序;也就是说,如果有两个元素   相等,他们的订单可能不会被保留。相比之下,稳定的排序   保留相等元素的顺序。

通过查看伟大的"Comparison of algorithms"表,我们可以看到两种算法的行为与最坏情况和内存使用情况截然不同:

enter image description here

Java.NET都是伟大的企业解决方案开发框架,都有嵌入式开发平台。那么为什么他们默认使用不同的排序算法,任何想法?

修改 我看到有两个人已经投票结束这个问题而不是建设性的。我相信Java和.NET是最受欢迎的开发框架,所以找到关于这样的决定的任何非平凡和有趣的想法,或许是事实,真的很有趣。

1 个答案:

答案 0 :(得分:4)

两个不同公司的不同开发团队对其框架和组件的通常用例得出了不同的结论,并决定相应地实施。