Co je standardní swap?
V počítačovém programování a informatice je standardní swap situace v programu, ve kterém musí mít své hodnoty vyměněny dvě proměnné, což vyžaduje, aby vytvoření třetí proměnné fungovalo jako zprostředkovatel, když jsou hodnoty přeneseny. Standardní swap je paradigma programování, což znamená, že lze použít na jakoukoli situaci, kdy je třeba vyměnit dva údaje, a není vázán na žádný datový typ nebo programovací jazyk. V programech, ve kterých je třeba vyměnit hodnoty, existuje mnoho instancí, ale často se jedná o standardní součást ve sbírkách a polích, když se používají s třídicími algoritmy, které musí přesouvat položky z jednoho indexu ve sbírce do druhého, pomocí dočasné proměnné, aby byla zadržena výměnnou hodnotu. Z pohledu hardwaru může být standardní swap podporovanou funkcí procesoru na nízké úrovni pro některé skalární datové typy, jako jsou celá čísla, což znamená, že hodnota zprostředkujícího nemusí být vytvořena v paměti náhodného přístupu (RAM), aby se vyměnila dvě čísla.
Koncept standardního swapu lze vidět s proměnnými A a B; Na konci standardního swapu by B by se měl rovnat a a měl by se rovnat B. Pokud program jednoduše přiřadí B k A, pak bude hodnota A ztracena a později nelze přiřadit B. To vyžaduje použití dočasné proměnné, která bude držet hodnotu B chvilku B je přiřazeno A. Posledním krokem je přiřazení dočasné proměnné hodnoty B, dokončení swap.
Jedna velmi běžná aplikace pro standardní swap je při použití algoritmu třídění v poli nebo sbírce. Pokud algoritmus třídění určil, že data v indexu pole pole 1 musí být zaměněna s daty při indexu 10, lze provést standardní výměnu dat. To lze provést výjimečně rychle pomocí odkazů na ukazatele v jazycích, jako je c.
V některých objektově orientovaných programovacích jazycích může dojít ke komplikaci, když je třeba dva instance objektůbýt vyměněn. V některých velmi vzácných případech jednoduše vyměňuje odkazy na objekt skutečný swap. Místo toho je jediným způsobem, jak si vyměnit objekty, klonovat interní data, pole podle pole, mezi dvěma objekty a proměnnou dočasného objektu.
Existuje jedna technika, která může být technicky použita k provádění standardního swapu pomocí logického operátora exkluzivního nebo (XOR). XOR Swap se spoléhá na skutečnost, že když se vypočítají dva bity s XOR, v podstatě vytvoří masku, kterou lze obrátit jedním nebo oběma operátory. Tímto způsobem mohou být dvě proměnné, A a B, vyměněny nejprve vytvořením masky s XOR obou proměnných, poté pomocí XOR k odmasku nejprve hodnotu pro B a poté hodnotu pro A. Bohužel, i když tato metoda se vyhýbá vytvoření dočasné proměnné, ale také se ve všech časech nestane, že se ve všech časech, které by se mohly měnit, může být v průběhu a B, které se vyrovnává, v nichž by se mohla změnit, což je v případě, že by se mohla změnit skutečná operaci.