swap (int a, int b)
int a = rand(); // any value int b = rand(); // any value // ... { int tmp = a; a = b; b = tmp; }
{ a ^= b; b ^= a; a ^= b; }
{ a -= b; b += a; a = b - a; }
{ a += b; b = a - b; a -= b; }
{ a = b - a; b -= a; a += b; }
/* requires: 1 <= a && 1 <= b && (__int64)a * b <= INT_MAX */ { a *= b; b = a / b; a /= b; }