JavaRush /Java блог /Архив info.javarush /Кухня(); Второй сезон - 73/79
terranum
28 уровень
Milan

Кухня(); Второй сезон - 73/79

Статья из группы Архив info.javarush
Кухня(); Второй сезон - 73/79 - 1 73. Сортировка выбором. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить элементы так, чтобы они были расположены по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый – на место наибольшего. Затем, начиная со второго, эта процедура повторяется. Написать алгоритм сортировки выбором.
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
terranum Уровень 28
26 января 2015

public static void selectionSort(@NotNull int[] arr) {
        int index;
        int tmp;
        for (int i = 0; i < arr.length; i++) {
            index = i;
            tmp = arr[i];
            for (int j = i + 1; j < arr.length; j++)
                if (arr[j] > tmp) {
                    tmp = arr[j];
                    index = j;
                }
            if (index == i)
                continue;
            tmp = arr[i];
            arr[i] = arr[index];
            arr[index] = tmp;
        }
    }


Предложу свой вариант, тут как бы все просто, странно что никто еще не предложил что то подобное.
iZulrad Уровень 34
22 января 2015

     /**
     * @param arr - массив для сортировки
     * @param len - длина массива
     */
    public static void selectionSort(@NotNull int[] arr, int len) {
        int dex;
        for (int l = 0; l < len - 1; l++) {
            for (int i = (dex = l) + 1; i < len; i++) if (arr[dex] < arr[i]) dex = i;
            if (dex != l) arr[l] = ((arr[dex] ^= arr[l] ^= arr[dex])) ^ arr[l];
        }
    }