2013-11-26 2 views
0

에 병합 실행 할 수 없습니다 :정렬이 지정된 배열을 정렬되지 않은 병합 정렬, 내 구현은 자바

[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 (배열)을 수행하면 해당 출력을 볼 수 있어야합니다. 대신 값을 반복하여 seperatly로 출력하십시오 –

답변

0

주요 방법을 알려주세요. 배열의 toString() 출력과 같습니다. 배열의 내용을 반복하고 각 요소를 인쇄해야합니다. 또는 아래 주석에이 방법을 사용하십시오. 이 같은 결과를 인쇄

+0

또는 Arrays.toString (result)을 사용하십시오. –

1

시도 :

for (int i : result) { 
System.out.println(i); 
} 
관련 문제