我在代码中使用了这些,但是我认为它们可能不如手动编码过程那么快。我搜索了,发现一些文章说System.arraycopy()实际上比手动复制数组要快。我不确定那是否正确。

另外,与我们在代码中编写的函数相比,Array.sort()函数的速度更快吗?

// I am merging the arrays here into a new integer array called newarray3
    int[] newarray3= new int[input1.length + input2.length];
    System.arraycopy(input1, 0, newarray3, 0, input1.length);
    System.arraycopy(input2, 0, newarray3, input1.length, input2.length);

    //sorting the array.
    Arrays.sort(newarray3);


input1和input2是两个要合并然后排序的数组。我想知道这种编码方式是否会使我的程序变慢。或者可能是其他的东西。请帮忙。

最佳答案

在几乎所有情况下,System.arraycopy都比您可以手工完成的速度更快,因为它可以一次完成大量数据移动,而不是一次完成一个元素。主要的例外是相对较小的数组,因为在arraycopy内部进行的初始处理(选择要使用的算法)并非易事。

重新排序,没有一种在所有条件下都最佳的排序算法。

10-04 17:51