2) Swap without using temporary variable
In the last post we have seen swap with temp variable. Eventually we have so many methods to do this and we have just tried to put all here. Contribution by comments are most welcome. Now let's look at the java program to swap two numbers without using any temporary variable. The below versions uses arithmetic based swapping of two numbers. One should have two variables to swap.
Method 1:
The below code uses Arithmetic Operators to swap two numbers. It uses two operators they are addition and subtraction to swap two numbers. While adding two integers one should take care of the integer value may overflow. If both a and b are to large after the addition then it may go out of integer range.
Method 2:
The below code uses Arithmetic Operators to swap two numbers. It uses two operators say multiplication and division to swap two numbers. But one need to take care that the operands should not be 0(zero) otherwise this approach doesn't work.
Method 3:
Bitwise XOR
Method 4:
Method 5:
Method 6:
Method 7:
In the last post we have seen swap with temp variable. Eventually we have so many methods to do this and we have just tried to put all here. Contribution by comments are most welcome. Now let's look at the java program to swap two numbers without using any temporary variable. The below versions uses arithmetic based swapping of two numbers. One should have two variables to swap.
Method 1:
The below code uses Arithmetic Operators to swap two numbers. It uses two operators they are addition and subtraction to swap two numbers. While adding two integers one should take care of the integer value may overflow. If both a and b are to large after the addition then it may go out of integer range.
import java.util.*; import java.lang.*; class Swap2 { public static void main(String args[]) { int a=11,b=22; System.out.printf("Values before swap are a=%d and b=%d",a,b); a=a+b; b=a-b; a=a-b; System.out.printf("\nValues after swap are a=%d and b=%d",a,b); } }
Method 2:
The below code uses Arithmetic Operators to swap two numbers. It uses two operators say multiplication and division to swap two numbers. But one need to take care that the operands should not be 0(zero) otherwise this approach doesn't work.
import java.util.*; import java.lang.*; class Swap2 { public static void main(String args[]) { int a=11,b=22; System.out.printf("Values before swap a=%d and b=%d",a,b); a=a*b; b=a/b; a=a/b; System.out.printf("\nValues after swap a=%d and b=%d",a,b); } }
Method 3:
Bitwise XOR
import java.util.*; import java.lang.*; class Swap3 { public static void main(String args[]) { int a=11,b=22; System.out.printf("Values before swap a=%d and b=%d",a,b); a^=b; b^=a; a^=b; System.out.printf("\nValues after swap a=%d and b=%d",a,b); } }
Method 4:
import java.util.*; import java.lang.*; class Swap4 { public static void main(String args[]) { int a=5,b=6; System.out.printf("Values before swap a=%d and b=%d",a,b); b=a+b-(a=b); System.out.printf("\nValues after swap a=%d and b=%d",a,b); } }
Method 5:
import java.util.*; import java.lang.*; class Swap5 { public static void main(String args[]) { int a=5,b=6; System.out.printf("Values before swap a=%d and b=%d",a,b); a = (a*b)/(b=a); System.out.printf("\nValues after swap a=%d and b=%d",a,b); } }
Method 6:
import java.util.*; import java.lang.*; class Swap6 { public static void main(String args[]) { int a=5,b=6; System.out.printf("Values before swap a=%d and b=%d",a,b); a=b-~a-1; b=a+~b+1; a=a+~b+1; System.out.printf("\nValues after swap a=%d and b=%d",a,b); } }
Method 7:
import java.util.*; import java.lang.*; class Swap7 { public static void main(String args[]) { int a=5,b=6; System.out.printf("Values before swap a=%d and b=%d",a,b); a =((a = a + b) - (b = a - b)); System.out.printf("\nValues after swap a=%d and b=%d",a,b); } }
Great job !!
ReplyDeleteI am curious to find out what blog system you happen to
ReplyDeletebe working with? I'm having some small security issues with my latest website and I would like to find something more secure.
Do you have any solutions?
Take a look at my blog post cheap jordan shoes
He answers it himself: "we each carry inside our heart a divine element World of Warriors Hack lehman has
ReplyDeletemade $3 billion from real estate sales since filing for
bankruptcy, according to court filings.