Though not all Java applications require variables to be swapped, but those which do require are not given proper thoughts about correct and optimized implementation.
Method-1: Using temporary Variable
The most common way to swap two values is by using a temporary variable as shown below:
If the use of temporary variable c is not allowed, then we have the following two options:
Method-2.1 : Using the addition and subtraction operations
The problem with the above solution is that the addition and subtraction can cause overflows. An overflow is a condition when the value of a variable is increased/decreased beyond the maximum/minimum value of that variable. Though the output of such a program may show that the variables have been swapped but it is not guaranteed as per Specification of various programming languages including Java.
Output:
Method-3: Using the XOR operator
The XOR operator can also be used swap two variables using the logic shown below:
Thank you
Method-1: Using temporary Variable
The most common way to swap two values is by using a temporary variable as shown below:
int a=10,b=5,c;c=a; (c=10,a=10,b=5)a=b; (c=10,a=5,b=5)b=c; (c=10,a=5,b=10)If the use of temporary variable c is not allowed, then we have the following two options:
Method-2.1 : Using the addition and subtraction operations
int a=10,b=5;a=a+b;b=a-b;a=a-bThe problem with the above solution is that the addition and subtraction can cause overflows. An overflow is a condition when the value of a variable is increased/decreased beyond the maximum/minimum value of that variable. Though the output of such a program may show that the variables have been swapped but it is not guaranteed as per Specification of various programming languages including Java.
package com.vaani.swap.subtraction;class Test{ public static void main (String args[]) { int a=1999999999,b=1899999999; a = a + b; System.out.println("After operation 1, a = " + a + " b = " + b); b = a - b; System.out.println("After operation 2, a = " + a + " b = " + b); a = a - b; System.out.println("After operation 3, a = " + a + " b = " + b); }}Output:
After operation 1, a = -394967298 b = 1899999999
After operation 2, a = -394967298 b = 1999999999
After operation 3, a = 1899999999 b = 1999999999
Method-3: Using the XOR operator
The XOR operator can also be used swap two variables using the logic shown below:
int a=10,b=5;a=a^b;b=a^b;a=a^bThank you
No comments:
Post a Comment