Open In App

Java Program to Swap two Variables

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Given two numbers x and y, we need to swap their values. In this article, we will learn the Swapping of two numbers in Java.

Examples of Swapping

Input : x = 10, y = 20;
Output : x = 20, y = 10
Input : x = 213, y = 109
Output : x = 109, y = 213

Swapping of Two Numbers

Steps to Swap Two Numbers in Java

Below are the simple steps we follow: 

  1. Assign x to a temp variable: temp = x 
  2. Assign y to x: x = y 
  3. Assign temp to y: y = temp

Methods for Swapping of Two Numbers in Java

1. Using Three Variables

Below is the implementation of the above method:

Java




// Java program to Swap
// Two variables
 
// Driver Class
public class GfG {
    // main function
    public static void main(String[] args)
    {
        int x = 100, y = 200;
 
        System.out.println("Before Swap");
        System.out.println("x = " + x);
        System.out.println("y = " + y);
 
        // Swapping using three
        // Variables
        int temp = x;
        x = y;
        y = temp;
 
        System.out.println("After swap");
        System.out.println("x = " + x);
        System.out.println("y = " + y);
    }
}


Output

Before Swap
x = 100
y = 200
After swap
x = 200
y = 100


2. Using Two Variables

Below is the implementation of the above method:

Java




// Java Program to Swap
// Two Numbers using Two
// Variables
import java.io.*;
 
// Driver Class
public class SwapVariables {
    // main function
    public static void main(String[] args)
    {
        int a = 5;
        int b = 10;
 
        // print statement
        System.out.println("Before swapping, a = " + a
                           + " and b = " + b);
 
        a = a + b;
        b = a - b;
        a = a - b;
 
        System.out.println("After swapping, a = " + a
                           + " and b = " + b);
    }
}


Output

Before swapping, a = 5 and b = 10
After swapping, a = 10 and b = 5


3. Using Two Variables (Single Statement)

Below is the implementation of the above method:

Java




// Java Program to Swap Two
// Numbers using Two variables
// Single Statement
import java.io.*;
 
// Driver Class
class GFG {
    // main function
    public static void main(String[] args)
    {
        Integer a = 10;
        Integer b = 20;
        System.out.println("Before swapping, a = " + a
                           + " and b = " + b);
 
        // Swapping a and b using
        // below statement
        b = a + b - (a = b);
 
        System.out.println("Before swapping, a = " + a
                           + " and b = " + b);
    }
}


Output

Before swapping, a = 10 and b = 20
Before swapping, a = 20 and b = 10


4.Using XOR

We can swap the numbers using XOR operator as shown below.

Java




import java.io.*;
 
class GFG {
    public static void main (String[] args) {
          int a = 10;
          int b = 20;
 
        System.out.println("Before swapping, a = " + a + " and b = " + b);
 
        // Swapping a and b using XOR
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
 
        System.out.println("After swapping, a = " + a + " and b = " + b);
    }
}


Output

Before swapping, a = 10 and b = 20
After swapping, a = 20 and b = 10

Time Complexity:

The time complexity of this XOR-based swap operation is constant, O(1), because it doesn’t depend on the size of the numbers being swapped or any iterative operations. It involves a few XOR and assignment operations, which are executed in constant time.

Space Complexity:

The space complexity is also O(1) because it doesn’t require any additional memory allocation that scales with the size of the input. Regardless of the values of a and b, the memory usage remains constant because it only uses a few extra integer variables to perform the swapping, and these variables don’t depend on the input size.

References



Last Updated : 19 Sep, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads