sll*_*sll 9 .net java sorting algorithm language-design
只是想知道为什么Java
并.NET Framework
默认使用不同的排序算法.
在Java中 ,默认情况下Array.Sort()
使用Merge Sort算法,而Wikipedia.com则说:
在Java中,Arrays.sort()方法使用合并排序或调整快速排序,具体取决于数据类型,并且实现效率切换到插入排序时,排序少于七个数组元素
在.NET Framework中 Array.Sort/List.Sort()
使用Quick Sort作为默认排序算法(MSDN):
List.Sort()使用Array.Sort,它使用QuickSort算法.此实现执行不稳定的排序; 也就是说,如果两个元素相等,则可能不会保留它们的顺序.相反,稳定的排序保留了相等元素的顺序.
通过查看伟大的"算法比较"表,我们可以看到两种算法与最差情况和内存使用情况的观点有很大不同:
这两个Java
和.NET
是企业解决方案发展的巨大框架,既有嵌入式开发平台.那么为什么他们默认使用不同的排序算法,任何想法?
编辑: 我看到有两个人已经投票结束这个问题,因为没有建设性.我相信Java和.NET是最受欢迎的开发框架,所以找到关于这样的决定的任何非平凡和有趣的想法,或许是事实!真的很有趣.