О́бмін (), в інформатиці — операція для обміну значень аргументів.
Наприклад, якщо маємо дві змінні A та B, і стан пам'яті: A=1, B=2, то після виконання операції swap(A,B) стан пам'яті змінюється на такий: A=2, B=1.
Реалізації Очевидна реалізація використовує тимчасову змінну:
TMP = A A = B B = TMP
Існують реалізації без використання додаткової змінної, наприклад Алгоритм обміну XOR, або за допомогою арифметики:
A = A + B B = A - B A = A - B
В архітектурі x86 замість трьох інструкцій ассемблера MOV можна використовувати одну XCHG. Існує також додаткова інструкція CMPXCHG, яка атомарно виконує дві дії (порівняти і обміняти) і використовується для реалізації мютексів.
Застосування В алгоритмах сортування, наприклад сортування обміном. В алгоритмах генерації всіх чи випадкових перестановок
Див. також Вказівник
Зноски
Література