2015-11-29 3 views
0

Я пытаюсь сделать сортировку с использованием сопоставимых по массиву. Я не уверен, почему он не работает. Если кто-то может взглянуть и помочь мне найти то, что не работает, это было бы здорово! Спасибо!Выбор Сортировка Неверный

public static Comparable[] no = new Comparable[100]; 

public static Comparable[] gen1() 
{ 
    Random random = new Random(); 
    for(int i=0;i<no.length;i++) 
    { 
     no[i] =random.nextInt(); 
    } 
    return no; 
} 

public static Comparable[] selectionSort (Comparable no[]) 
    { 
     int min; 
     Comparable temp; 

     for (int index = 0; index < no.length-1; index++) 
     { 
     min = index; 
     for (int scan = index+1; scan < no.length; scan++) 
      if (no[scan].compareTo(no[min]) < 0) 
       min = scan; 
     temp = no[min]; 
     no[min] = no[index]; 
     no[index] = temp; 
     } 
     return no; 
    } 

public static void main(String[] args) 
{ 
    System.out.println("Original Array:"); 
    System.out.println(Arrays.toString(gen1())); 
    System.out.println("Sorted Array:"); 
    System.out.println(selectionSort(no)); 

} 
+0

Я только что попробовал свой код, и сортировка, похоже, работает нормально. Мне пришлось изменить строку, которая печатает отсортированный массив на 'System.out.println (Arrays.toString (selectionSort (no))):' Это то, что не работает для вас? Если нет, можете ли вы указать, что именно не работает? –

ответ

0

Вы не указали, что ваша проблема, но в последней строке основной вы должны сделать

System.out.println(Arrays.toString(selectionSort(no))); 

Выход выглядит отсортированный мне.

+0

Ах! Спасибо! Это всегда самые очевидные вещи! – user5344755

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