- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
<分区>
只是想知道为什么 Java
和 .NET Framework
默认使用不同的排序算法。
在 Java 中 Array.Sort()
使用 Merge Sort默认算法为 Wikipedia.com说:
In Java, the Arrays.sort() methods use merge sort or a tuned quicksort depending on the datatypes and for implementation efficiency switch to insertion sort when fewer than seven array elements are being sorted
在 .NET Framework 中 Array.Sort/List.Sort()
使用 Quick Sort作为默认排序算法(MSDN):
List.Sort() uses Array.Sort, which uses the QuickSort algorithm. This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.
通过观察伟大的"Comparison of algorithms"从表中我们可以看到,从最坏情况和内存使用的角度来看,这两种算法都有截然不同的行为:
Java
和.NET
都是用于企业解决方案开发的出色框架,它们都有用于嵌入式开发的平台。那么为什么他们默认使用不同的排序算法,有什么想法吗?
编辑:我看到已经有两个人投票结束这个问题,因为他们没有建设性。我相信 Java 和 .NET 是最流行的开发框架,因此如果能找到关于此类决定的任何重要且有趣的想法(也许是事实!),那将非常有趣。
我是一名优秀的程序员,十分优秀!