【发布时间】:2019-04-21 08:55:18
【问题描述】:
我要使用功能
public static void sort(Object[] a)
要对一个 int 数组进行排序,但我不知道该怎么做,所以我确定它使用的是合并排序而不是任何其他排序。
这里是 Java 文档:https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
为了使用归并排序,我认为下面是该函数的正确实现。
public static void main(String[] args) {
int arr[] = { 3, 2, 4, 1, 99, 30, 5, 3 };
Arrays.sort(arr);
}
这是正确的吗?此外,我想用
指定一个从哪里开始排序等的索引sort(Object[] a, int fromIndex, int toIndex)
我将如何确保编写代码以便它使用合并排序而不是快速排序。
【问题讨论】:
-
您要使用的方法需要一个对象数组。 int[] 是一个整数数组,而不是一个对象数组。为什么要关心算法是归并排序还是快速排序?
-
@JBNizet 我需要将我自己的算法实现与 java 内置算法的实现进行基准测试
-
那么不要调用 Arrays.sort(int[]),因为它使用的是快速排序,而不是归并排序。请注意,用 Java 编写正确的基准测试是一项非常复杂的任务。如果您还不知道 int 和 Object 之间的区别,那么您可能应该专注于编写基准测试之外的其他事情。首先学习基础知识。