Это кажется простым и традиционным вопросом. Думаю, некоторые из вас сталкивались с этой проблемой. Возможно, когда вы попытаетесь реализовать алгоритм сортировки самостоятельно, он вам понадобится.

Мы можем использовать функцию языка по умолчанию или написать ее, например:

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

и сделано. Если у вас есть какое-либо решение, пожалуйста, сообщите мне в комментарии.

Развлекайся!