О́бмін (англ. swap), в інформатиці — операція для обміну значень аргументів.
Наприклад, якщо маємо дві змінні 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, яка атомарно виконує дві дії (порівняти і обміняти) і використовується для реалізації .
Застосування
- В алгоритмах сортування, наприклад сортування обміном.
- В алгоритмах генерації всіх чи випадкових перестановок
Див. також
Зноски
- intel1.
- Rostedt, Steven (2006). RT-mutex implementation design — The Linux Kernel documentation. www.kernel.org. Процитовано 23 січня 2024.
- Skiena, 2008, с. 450.
Література
- The Intel Architecture Software Developer’s Manual, Volume 1: Basic Architecture (Order Number 243190) (PDF).
- Skiena, Steven S. (2008). The algorithm design manual (вид. 2nd). London: Springer. ISBN .
Це незавершена стаття про алгоритми. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
O bmin angl swap v informatici operaciya dlya obminu znachen argumentiv Napriklad yaksho mayemo dvi zminni A ta B i A 1 B 2 to pislya vikonannya operaciyi swap A B stan pam yati zminyuyetsya na takij A 2 B 1 RealizaciyiOchevidna realizaciya vikoristovuye timchasovu zminnu TMP A A B B TMP Isnuyut realizaciyi bez vikoristannya dodatkovoyi zminnoyi napriklad Algoritm obminu XOR abo za dopomogoyu arifmetiki A A B B A B A A B V arhitekturi x86 zamist troh instrukcij assemblera MOV mozhna vikoristovuvati odnu XCHG Isnuye takozh dodatkova instrukciya CMPXCHG yaka atomarno vikonuye dvi diyi porivnyati i obminyati i vikoristovuyetsya dlya realizaciyi ZastosuvannyaV algoritmah sortuvannya napriklad sortuvannya obminom V algoritmah generaciyi vsih chi vipadkovih perestanovokDiv takozhVkazivnikZnoskiintel1 Rostedt Steven 2006 RT mutex implementation design The Linux Kernel documentation www kernel org Procitovano 23 sichnya 2024 Skiena 2008 s 450 LiteraturaThe Intel Architecture Software Developer s Manual Volume 1 Basic Architecture Order Number 243190 PDF Skiena Steven S 2008 The algorithm design manual vid 2nd London Springer ISBN 978 1 84800 069 8 Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi