Сортировка выбора проста, вы смотрите на первый элемент, и если это> element [i], то вы меняете его местами. Например:
8 5 1 9
Начните с элемента 8..посмотрите на следующий элемент меньшего размера, поэтому поменяйте местами:
5 8 1 9
Теперь посмотрите на следующий элемент 1, он тоже меньше, чем 5 позиций обмена
1 8 5 9
Наконец, 9> 1, переходите к следующему элементу (8) и сравнивайте ... продолжайте делать это, пока не получите
1 5 8 9
Теперь выполнить обратную сортировку по убыванию - это тот же алгоритм, но вы просто проверяете, является ли он> скорее, чем <. </strong>
Например,
1 9 5 8
Начните с 1, это 9> 1, да, так что поменяйте местами:
9 1 5 8
Продолжайте движение ... вторая цифра равна 1 <5, поменяйте местами: </p>
9 5 1 8
Продолжайте делать это, пока у вас не будет
9 8 5 1
Вот некоторый псевдокод, это не Java, а C, но он должен помочь вам понять, что если вы можете реализовать сортировку выбора по возрастанию, то вы можете сделать это по убыванию:
while(pTemp2 != NULL)
{
//we implement a selection sort
//check if incoming node->datum with each node in the list
//swap values if >
if (pTemp2->datum > pTemp->datum)
{
//swap the values
int temp = pTemp->datum;
pTemp->datum = pTemp2->datum;
pTemp2->datum = temp;
}
//advance the pointer
pTemp2=pTemp2->next;
}