我已将QuickX和MergeX与Robert Sedgewick和Kevin Wayne数据一起比较的Arrays.sort()与random和compare进行了比较。
$ ./compare MergeX ArraysSort QuickX QuickLog2
N = 2000000
MergeX sec. = 1.835
Arrays sec. = 1.946
QuickX sec. = 1.698
QuickLog2 sec. = 1.574
N = 4000000
MergeX sec. = 4.091
Arrays sec. = 4.082
QuickX sec. = 3.826
QuickLog2 sec. = 3.474
N = 8000000
MergeX sec. = 9.007
Arrays sec. = 8.602
QuickX sec. = 8.183
QuickLog2 sec. = 7.445
QuickLog2是一个shell脚本 ArraysSort调用java.util.arrays.sort()。
public static void main(String[] args) {
String[] a = StdIn.readAllStrings();
Stopwatch timer = new Stopwatch();
java.util.Arrays.sort(a);
double elapsedTime = timer.elapsedTime();
show(a);
if (isSorted(a)) StdOut.println("Arrays sec. = " + elapsedTime);
}
QuickX和MergeX被修改为输出ArraysSort之类的经过时间。 my quicksort是tuned quicksort。
ArraysSort比 QuickX 慢 5%。
我的检查有什么问题吗?
Java中有一些魔力吗?
我是Java的新手
为什么不将quicksort用于对象数组?
在我写这个问题的路上,我在这个网站上找到了{{3}}。 它比timsort慢吗?
我的环境是......
$ java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)