Interschimbarea
Dându-se două numere a și b, să se interschimbe (swap) valorile lor, astfel încât a să îi preia valoarea lui b, iar a să îi preia valoarea lui b.
Exemplu. Dacă la început, a = 5 și b = 7, după interschimbare, a = 7 și b = 5.
Metoda 1 (variabilă auxiliară)
O primă metodă ar fi să creăm o variabilă auxiliară care să rețină valoarea inițială a lui a. După aceea, lui a îi atribuim valoarea b, iar lui b îi atribuim valoarea din variabila auxiliară (deoarece aici e salvată valoarea inițială a lui a).
Implementare C++
{
aux = a;
a = b;
b = aux; //Dacă am fi scris b = a, b ar fi luat noua valoare a lui a (nu cea inițială), care este însuși b.
}
Metoda 2 (funcția swap)
Există o funcție care interschimbă valorile a două variabile — funcția swap().
{
swap(a, b);
}
Metoda 3 (operații cu numere)
xistă o metodă mai interesantă, care nu folosește vreo altă variabilă auxiliară. Totul este matematic și poate fi un picuț mai greu de înțeles.
Pentru început, la a vom aduna valoarea din b (a = a + b). De aici, vom seta b ca fiind a - b (cum a conține acum valoarea inițială a + b, scăzând b, obținem a + b - b = valoarea inițială a lui a). În final, scădem din a, valoarea b (care conține acum valoarea inițială a lui a).Această metodă nu este în particular utilă, decât în situații în care memoria este extrem de limitată.
{
a = a + b;
b = a - b;
a = a - b;
}