2013-11-26 4 views
0

Это моя реализация 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; 
    } 

} 
+1

Вы не печатаете его правильно. Если вы выполните System.out.print (массив), вы должны увидеть этот вывод. Вместо этого сверните значения и распечатайте их отдельно. –

ответ

0

показать нам ваш основной метод. Это похоже на вывод toString() массива. Вам нужно перебрать содержимое массива и распечатать каждый элемент. Или используйте метод в комментарии ниже.

+0

Или используйте Arrays.toString (результат) –

1

попытка печати результат так:

for (int i : result) { 
System.out.println(i); 
} 
Смежные вопросы