2014-01-22 4 views
-1

, если этот код для сортировки по возрастаниюСортировка сортировки вставками [по убыванию]

public static String [] selectionSort_String(String[] inList) { 
    String temp;  


    for (int i=0; i<(inList.length-1); i++) { 
     for (int j=i+1; j<inList.length; j++) { 
      if (inList[i].compareTo(inList[j]) > 0) { 
       temp = inList[i]; 
       inList[i] = inList[j]; 
       inList[j] = temp; 
      } 
     } 
    } 

    // return the sorted Array 
    return inList; 

Как я его Сортировать по убыванию?

+0

'если (inList [я] .compareTo (inList [у]) <0)' –

+0

Либо название вопроса или название вашей функции является неправильным. Сортировка выбора! = Сортировка вставки – StephenTG

+0

В Java реализованы десятки реализованных алгоритмов сортировки. Почему бы не попытаться выполнить поиск? Это первая ссылка из google: http://mathbits.com/MathBits/Java/arrays/InsertionSort.htm – MGorgon

ответ

2

Это невероятно тривиально. В вашем алгоритме вы меняете индексы i и j, если inList[i] имеет больший размер, чем inList[j]. Просто замените логическую логику при ее замене (т. Е. I меньше j).

... 
for (int i=0; i<(inList.length-1); i++) { 
    for (int j=i+1; j<inList.length; j++) { 
     if (inList[i].compareTo(inList[j]) < 0) { // <--Changing the operator to LT 
      temp = inList[i]; 
      inList[i] = inList[j]; 
      inList[j] = temp; 
     } 
    } 
1

Только переключатель> < в строке сравнения.

0

Вы можете отсортировать с помощью Arrays.sort и реализации сравнить object2 с object1, чтобы инвертировать результат.

Comparator<String> comparator = new Comparator<String>() { 
      @Override 
      public int compare(String o1, String o2) { 
       return o2.compareTo(o1); 
      } 
     }; 

Arrays.sort(strings, comparator); 
Смежные вопросы