2015-01-10 7 views
1

Я работаю над кодом сортировки для сортировки массива из десяти целых чисел в Java. Я написал это:Выбор сортировки целых чисел в 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

Заменить все виды использования array в методе sort с arr, который является параметром, который вы должны сортировать.

Любой IDE должен сказать вам, что arr не используется здесь:

public static void sort(int arr[]) 

Кроме того, вы должны удалить двойную инициализацию i:

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

Во внутреннем цикле присвоенной мин внутри значения if для значения массива индекса внешнего значения.

min = array [i];

не могут быть связаны, но она не должна быть

мин = массив [J];

Смежные вопросы