Skip to main content

Co to jest standardowa zamiana?

W programowaniu komputerowym i informatyce standardowa zamiana jest sytuacją w programie, w którym dwie zmienne muszą wymienić swoje wartości, wymagając utworzenia trzeciej zmiennej, aby działać jako pośrednik po przeniesieniu wartości.Standardowa zamiana jest paradygmatem programowania, co oznacza, że można go zastosować do każdej sytuacji, w której należy wymieniać dwa elementy danych i nie jest powiązane z żadnym typem danych lub językiem programowania.Istnieje wiele instancji w programach, w których wartości należy wymienić, ale często jest to standardowy element w kolekcjach i tablicach, gdy jest używany z algorytmami sortowania, które muszą przenosić elementy z jednego indeksu w kolekcji do drugiego, przy użyciu zmiennej tymczasowej do przechowywaniaWartość jest zamieniona.Z perspektywy sprzętowej standardowa swap może być obsługiwaną funkcją procesora niskiego poziomu dla niektórych typów danych skalarnych, takich jak liczby całkowite, co oznacza, że wartość pośrednia nie musi być tworzona w pamięci dostępu losowego (RAM), aby zamienić dwie liczby.

Koncepcję standardowej wymiany można zobaczyć ze zmiennymi A i B;Na końcu standardowej zamiany B powinien równać się a, a A powinien równy B. Jeśli program po prostu przypisuje B do A, wówczas wartość A zostanie utracona i nie można później przypisać B.Tymczasowa zmienna, która utrzyma wartość alii B, jest przypisywana do A. Ostatnim krokiem jest przypisanie wartości tymczasowej zmiennej do B, wypełnienie zamiany. Jedną z bardzo powszechnych aplikacji do standardowej swap jest używanie włączonego algorytmu sortowaniatablica lub kolekcja.Jeśli algorytm sortowania ustalił, że dane w indeksie tablicy 1 muszą zostać zamienione na dane w indeksie 10, można wykonać standardową wymianę danych.Można to zrobić wyjątkowo szybko za pomocą odniesień wskaźników w językach takich jak C. Komplikacja może wystąpić w niektórych językach programowania zorientowanych na obiekty, gdy należy wymienić dwie instancje obiektowe.W niektórych bardzo rzadkich przypadkach po prostu zamiana odniesień do obiektu nie zainicjuje rzeczywistej wymiany.Zamiast tego jedynym sposobem wymiany obiektów jest sklonowanie danych wewnętrznych, pola według pola, między dwoma obiektami i zmienną obiektu tymczasowego. Istnieje jedna technika, która technicznie może być użyta do wykonywania standardowej wymiany przy użyciu wyłącznej- wyłącznej- wyłącznejlub (xor) operator logiczny.Swap XOR opiera się na fakcie, że gdy dwa bity są obliczane za pomocą XOR, zasadniczo utworzą maskę, którą można odwrócić jednym lub obiema operatorami.W ten sposób dwie zmienne, A i B, można zamienić, najpierw utworzenie maski z XOR dwóch zmiennych, a następnie używając XOR do pierwszego maskowania wartości B, a następnie wartości dla A. Niestety, chociaż ta metoda unikatworzenie zmiennej tymczasowej, nie dokona również zamiany we wszystkich przypadkach, szczególnie gdy A i B są sobie równe, aw przypadkach, w których optymalizacja kompilatora może zmienić rzeczywistą operację.