如何“逆转”选择排序?

时间:2013-05-16 01:19:22

标签: java arrays sorting loops selection

所以这里我有一个选择排序来从最低到最高排序值,我如何更改它,以便从高到低排序值?

int min;
for (int i = 0; i < array.length; i++) {
    // Assume first element is min
    min = i;
    for (int j = i + 1; j < array.length; j++) {
         if (array[j] < array[min]) {
              min = j;
         }
    }

    if (min != i) {
       final int temp = array[i];
       array[i] = array[min];
       array[min] = temp;
    }
itsATextArea.append(array[i] + "\n");
}

2 个答案:

答案 0 :(得分:2)

怎么样:

java.util.Arrays.sort(array);
java.util.Arrays.reverse(array);

答案 1 :(得分:1)

您只需要更改代码中的标志

if (array[j] > array[max])
{
    //assign it here
    max = j;
}

以下是修改后代码的外观。

int max;
for (int i = 0; i < array.Length; i++)
{
    // Assume first element is max
    max = i;
    for (int j = i + 1; j < array.Length; j++)
    {
        if (array[j] > array[max])
        {
            max = j;
        }
    }

    if (max != i)
    {
       int temp = array[i];
       array[i] = array[max];
       array[max] = temp;
    }
}