Может кто-нибудь объяснить мне этот пример быстрой сортировки?
Я посмотрел видео о быстрой сортировке, но я не понимаю код:
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]
,
Вот небольшая иллюстрация процесса: