我在代码中使用了这些,但是我认为它们可能不如手动编码过程那么快。我搜索了,发现一些文章说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内部进行的初始处理(选择要使用的算法)并非易事。
重新排序,没有一种在所有条件下都最佳的排序算法。