Это кажется простым и традиционным вопросом. Думаю, некоторые из вас сталкивались с этой проблемой. Возможно, когда вы попытаетесь реализовать алгоритм сортировки самостоятельно, он вам понадобится.
Мы можем использовать функцию языка по умолчанию или написать ее, например:
void swap(int &a, int &y) { int temp = b; a = b; b = temp; }
И есть вопрос, нужна ли нам лишняя переменная temp
?
Нет, это не так. Но как?
Во-первых, в некоторых языках у нас есть a, b = b, a
и значения их переключаются. Однако в другой среде, которая не поддерживает эту аннотацию, можем ли мы повторить этот трюк?
Во-вторых, мой ответ ДА. Вот в чем дело:
a = a + b b = a - b a = a - b
Теперь давайте проверим это на Python:
>>> a = 1 >>> b = 2 >>> a = a + b >>> b = a - b >>> a = a - b >>> a 2 >>> b 1
и сделано. Если у вас есть какое-либо решение, пожалуйста, сообщите мне в комментарии.
Развлекайся!