我做了一个合并排序,它将一个数组合并为 3 个部分而不是两个部分,以便对其进行排序,并且我编写了一些代码来测试我的合并排序是否正常工作。这是测试的代码:
while (true){
Random rand = new Random();
int[] randArray = new int[rand.nextInt(2000)];
for (int i = 0; i < randArray.length; i++) {
randArray[i] = rand.nextInt();
}
int[] temporary = new int[randArray.length];
System.arraycopy(randArray, 0, temporary, 0, randArray.length);
mergesort(randArray);
Arrays.sort(temporary);
if (Arrays.equals(randArray, temporary)){
System.out.println("YES");
} else {
break;
}
}
}
我正在做的是每次创建一个最多包含 2000 个整数的数组并用随机整数填充数组,然后将该数组存储在临时数组中,然后在原始数组中使用我的合并排序并使用Arrays.sort()
临时数组的方法,然后如果两个数组相等,则打印 YES 或者从 while 循环中中断。
到目前为止,它还没有从 while 循环中中断并表明我的算法是正确的,所以我问我是否在这里正确并正确编写了测试代码。
编辑:它不断打印 YES 而不会中断循环,所以我相信它正在工作,但我在问,所以我可以确定