只是想知道为什么Java和.NET Framework默认使用不同的排序算法。
In Array.Sort()默认使用合并排序算法,如Wikipedia.com所说:
在Java中,Arrays.sort()方法根据数据类型使用合并排序或优化的快速排序,当排序不到7个数组元素时,实现效率切换为插入排序
In .NET Framework Array.Sort/List.Sort()使用快速排序作为默认排序算法(MSDN):
List.Sort()使用Array.Sort,后者使用QuickSort算法。此实现执行不稳定排序;也就是说,如果两个元素相等,则它们的顺序可能无法保留。相反,稳定的排序保持了元素相等的顺序。
通过查看伟大的“算法比较”表,我们可以看到这两种算法与最坏情况和内存使用角度有很大不同的行为:

Java和.NET都是企业解决方案开发的优秀框架,都有嵌入式开发平台。那么,为什么他们在默认情况下使用不同的排序算法,有什么想法?
编辑:,我看到已经有两个人投票结束了这个问题,因为这不是建设性的。我相信Java和.NET是最流行的开发框架,因此找到关于这样的决定的任何非琐碎和有趣的想法,也许是事实,都是非常有趣的。
发布于 2011-09-15 19:47:32
两家不同公司的不同开发团队对其框架和组件的通常用例得出了不同的结论,并决定相应地实现。
https://stackoverflow.com/questions/7436613
复制相似问题