2015-01-10 3 views
1

Java에서 10 개의 정수 배열을 정렬하기 위해 선택 정렬 코드로 작업하고 있습니다. 나는 이것을 작성했습니다 :Java에서 정수 선택 정렬

import java.io.*; 
class selectint 
{ 
    int array [] = new int[10]; 
    public void sort(int arr[]) 
    { 

     int i = 0; 
     int length = array.length; 
     for(i = 0; i<length ; i++) 
     { 
      int min = array[i]; 
      int pos = i; 
      for(int j = i+1; j<length; j++) 
      { 
       if (min>array[j]) 
       { 
        min = array[i]; 
        pos = j; 
       } 
      } 
      int t = array[pos]; 
      array[pos] = array[i]; 
      array[i] = t; 
      System.out.println(array[i]); 
     } 
    } 


    public static void main(String args[])throws IOException 
    { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     selectint obj = new selectint(); 
     System.out.println("Enter any 10 numbers"); 
     String str; 
     int num[] = new int[10]; 
     int i; 
     for(i = 0; i<10; i++) 
     { 
      str = br.readLine(); 
      num[i] = Integer.parseInt(str); 
     } 
     obj.sort(num); 
    } 
} 

컴파일 오류 또는 구문 오류가 표시되지 않습니다. 그러나 꽤 논리적 인 오류가있었습니다. 나는 10 개의 정수로 된 세트를 입력했지만, 정렬 후에 인쇄 된 것은 모두 10 '0의 세트였다. 어떻게 해결할 수 있습니까? TIA.

답변

1

sort 메서드의 array의 모든 용도를 arr으로 바꾸십시오.이 매개 변수는 정렬해야하는 매개 변수입니다. 당신이 분을 할당 내부 루프에서

// remove previous `i` variable declaration 
for(int i = 0; i<length ; i++) { ... } 
0

:


또한

public static void sort(int arr[]) 
, 당신은 i의 이중 초기화를 제거해야합니다 :

모든 IDE는 arr 여기에 사용되지 않은 사실을 말해야한다 외부 값 인덱스의 if 값을 배열 내부로 반환합니다.

min = array [i];

는 관련되지 않을 수도 있지만 이는

분 = 배열 ​​[J]이어야한다;