Может кто-нибудь объяснить мне этот пример быстрой сортировки?

Я посмотрел видео о быстрой сортировке, но я не понимаю код:

public static void main(String[] args){
    int[] array = { 1, 2, 3, 4, 5 };
    int left = 0;
    int right = array.length - 1;

    for (left = 0; left < right; left++, right--) {
        int temp = array[left];
        array[left] = array[right];
        array[right] = temp;
    }

    for (int i = 0; i < array.length; i++) {
        System.out.println(array[i]);
    }
}

Эта часть меня смущает:

int temp = array[left];
array[left] = array[right];
array[right] = temp;

Можете ли вы объяснить это мне?

1 ответ

Решение

Фрагмент кода меняет значения array[left] а также array[right], ничего более.


Это делается путем запоминания значения array[left] во временной переменной temp потому что это скоро будет отменено.

После этого он переопределяет значение в array[left] со значением, хранящимся в array[right],

Наконец он записывает запомненное значение старого array[left], Хранится в temp, чтобы array[right],


Вот небольшая иллюстрация процесса:

иллюстрация

Другие вопросы по тегам