1

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

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");
}
4

2 回答 2

2

您只需要更改代码中的符号

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;
    }
}
于 2013-05-16T01:37:53.970 回答
1

怎么样:

java.util.Arrays.sort(array);
java.util.Arrays.reverse(array);
于 2013-05-16T01:31:53.183 回答