Sunt necesare pentru admiterea de la UBB doar interschimbarea clasică, prin adunare, prin scădere și prin scădere.

Interschimbare prin funcții predefinite

swap(x,y);

Interschimbare clasică (metoda paharelor)

În această metodă se folosește o variabilă auxiliară (încă un pahar).

void swap(int &x, int &y){
	int aux=x;
	x=y;
	y=aux;
}

Interschimbare prin adunare

void swap(int &x, int &y){
	x=x+y;
	y=x-y;
	x=x-y
}

Forma contrasă

void swap(int &x, int &y){
	x+=y;
	y=x-y;
	x-=y;
}

Interschimbare prin scădere

void swap(int &x, int &y){
	x=x-y;
	y=x+y;
	x=y-x;
}

Forma contrasă

void swap(int &x, int &y){
	x-=y;
	y+=x;
	x=y-x;
}

Interschimbare prin înmulțire

void swap(int &x, int &y){
	x=x*y;
	y=x/y;
	x=x/y;
}

Forma contrasă

void swap(int &x, int &y){
	x*=y;
	y=x/y;
	x/=y;
}

Interschimbare pe biți (XOR)

Nu intră la admiterea de la UBB

void swap(int &x, int &y){
	x=x^y;
	y=x^y;
	x=x^y;
}

Interschimbare prin împărțire

Această variantă deși pare corectă matematic, ea nu funcționează în C++ deoarece împărțirea pe int returnează doar câtul, iar pe float nu ar funcționa din cauza rotunjirilor. Teoretic ar putea funcționa în pseudocod, deoarece ar fi evaluată matematic, și simplificările ar fi corecte. dar nu a fost folosită niciodată in admiterea de la UBB. Așadar, această variantă de interschimbare este GREȘITĂ

void swap(int &x, int &y){
	x=x/y;
	y=x*y;
	x=y/x;
}

Forma contrasă

void swap(int &x, int &y){
	x/=y;
	y*=x;
	x=y/x;
}