Это моя реализация Merge Sort, которая не сортировочного данный массив: всякий раз, когда я пытаюсь запустить его, я получаю этот выход:Невозможно запустить Merge Сортировать по Java
[I @ 58c3d9ac
Почему я вижу это? Я не мог найти проблему.
public static int[] mergeSort(int[] arr, int start, int end){
if (end-start>1){
int middle = start + (end-start) /2;
return merges(mergeSort(arr,start,end), mergeSort(arr,start,end));
}
else{
int[]result = new int[end-start];
for(int i=0; i<end-start; i++)
result[i] = arr[start+i];
return result;
}
}
public static int[] merges(int[]arr1,int[]arr2){
int[] result = new int[arr1.length + arr2.length];
int outPoint=0;
int arr1Point=0;
int arr2Point=0;
while(outPoint<result.length){
if(arr1Point >= arr1.length)
result[outPoint++] = arr2[arr2Point++];
else if (arr2Point >= arr2.length)
result[outPoint++] = arr1[arr1Point++];
else if (arr1[arr1Point] <= arr2[arr2Point])
result[outPoint++] = arr1[arr1Point++];
else
result[outPoint++] = arr2[arr2Point++];
}
return result;
}
}
Вы не печатаете его правильно. Если вы выполните System.out.print (массив), вы должны увидеть этот вывод. Вместо этого сверните значения и распечатайте их отдельно. –