2016-10-01 2 views
0

이 프로그램은 기본 삽입 정렬입니다. 줄 번호 22 및 44에서 ArrayIndexOutOfBoundsException을 얻고 있습니다.이 문제를 해결하는 데 협조 해주십시오. 삽입 방법에서 정렬 된 전체 배열을 반환하는 방법. 반품 a []이 (가) 작동하지 않습니다 .......................................... ....호출 메서드에서 배열 예외를 벗어났습니다. 메서드에서 전체 배열을 반환하는 방법

package analysis; 

import java.util.*; 

class Sort 
{ 
    int i,j,n,temp; 
    int a[] = new int[n]; 

    int insertion(int a[],int n) 
    { 
     for (i=1;i<n;i++) { 
      j=i-1; 
      while (i>0 && a[j]>a[i]) { 
       temp = a[j]; 
       a[j] = a[i]; 
       a[i] = temp; 
       i--; 
       j--; 
      } 
     } 
     return a[n]; 
    } 
} 

class Recurse 
{ 
    private static Scanner sc; 

    public static void main(String[] args) 
    { 
     System.out.println("enter array size"); 
     int l,s; 
     sc = new Scanner(System.in); 
     s = sc.nextInt(); 
     int b[] = new int[s]; 
     int c[] = new int[s]; 
     for (l=0;l<s;l++) { 
      b[l] = sc.nextInt(); 
     } 
     Sort so = new Sort(); 
     c[s] = so.insertion(b,s); 
     System.out.println("Sorted array is "); 
     for (l=0;l<s;l++) { 
      System.out.println(c[l]); 
     } 
    } 
} 
+0

를 선언? –

답변

1

코드의 그 두 선이 문제가 발생합니다 인덱싱 0에서 n-1에 번호를 포함하기 때문에

int a[] = new int[n]; 
return a[n]; 

n 인덱스에있는 요소를 반환하는 것은 불가능하다.

+0

위에서 주어진 삽입 메서드에서 전체 정렬 된 배열을 반환하는 방법. 사전에 감사합니다. – Yash

+0

배열에서 함수를 반환하려면 다음과 같이 작성해야합니다. int [] function() {int [] array = new int [10]; 반환 배열; } 도움이된다면 내 대답을 올바른 것으로 받아 들여주세요, 건배! –

0

라인 44에서 당신은 s0에서 c[l]에 액세스하려고하지만 당신은 단지`Arrays.sort`를 사용하는 것이 더 쉽고 더 안전하지 않을까요 c[s]

관련 문제