2017-02-09 7 views
1

Я очень смущен тем, как отменить эти методы сортировки. Любая помощь будет оценена по достоинству. Я посмотрел вверх и попытался исследовать, но я не мог найти ничего общего с этим типом сопоставимого списка.Сделать оба алгоритма сортировки поместите значения в порядке убывания. Затем создайте класс диска для проверки двух алгоритмов.

public class Sorting 
{ 

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

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

     temp = list[min]; 
     list[min] = list[index]; 
     list[index] = temp; 
     } 
    } 

    public static void insertionSort(Comparable[] list) 
    { 
     for (int index = 1; index < list.length; index++) 
     { 
     Comparable key = list[index]; 
     int position = index; 

     while (position > 0 && key.compareTo(list[position-1]) < 0) 
     { 
      list[position] = list[position-1]; 
      position--; 
     } 

     list[position] = key; 
     } 
    } 
} 

ответ

0

Я думаю, что если вы меняете: if (list[scan].compareTo(list[min]) < 0) к if (list[scan].compareTo(list[min]) > 0) будет сортировать в обратном порядке.

Here is the api

int compareTo(T o)

Сравнивает этот объект с указанным объектом для заказа. Возвращает отрицательное целое число, ноль или положительное целое число, так как этот объект меньше, равен или больше указанного объекта.

+0

Спасибо! Это работало для сортировки выбора, но сортировка вставки для меня все еще загадка. – azamaryk

+0

делает chaging 'key.compareTo (список [позиция-1]) <0' до ' key.compareTo (список [позиция-1])> 0' работа? – slcott

+0

Он делает. Это было проще, чем я верил. Большое спасибо! – azamaryk