Swap Two Variables in Place

Usually, when a programmer is asked to swap two variables, they will:

  • Create a temp variable to hold one of their values. temp = x
  • Assign one to the other x = y
  • Retrieve temporary variable y = temp

What if you were asked to do without adding a temp variable (i.e. without using any extra space). There is two easy ways to so.

The first way uses addition and subtraction. Here is a java implementation of this method.

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

The second way uses the XOR operator. With 3 XOR operations, you can swap values in x and y easily.

public static void XORSwap(int x, int y) {
   x = x ^ y; 
   y = x ^ y; 
   x = x ^ y; 
}
Mohamed Osama

Mohamed Osama

Software Engineer; Entrepreneur; Data analyst; Rails Contributor. linkedin.com/in/mohamedosamaa stackoverflow.com/cv/oss

Read More