</>

Technology

Java Programs

Difficulty

Intermediate

Interview Question

Write a Java program to implement Bubble Sort.

Answer

Bubble Sort in Java

Java
public class BubbleSort {
    public static void main(String[] args) {
        int n, c, d, temp;

        int array[] = { 500, 300, 200, 400, 100 };
        n = array.length;

        System.out.println("Array Before Bubble Sort");
        for (int i = 0; i < array.length; i++)
            System.out.print(array[i] + " ");

        // Sorting
        temp = 0;

        for (int i = 0; i < n; i++) {
            for (int j = 1; j < (n - i); j++) {
                if (array[j - 1] > array[j]) {
                    // Swap adjacent elements
                    temp         = array[j - 1];
                    array[j - 1] = array[j];
                    array[j]     = temp;
                }
            }
        }

        System.out.println();
        System.out.println("Array After Bubble Sort");
        for (int i = 0; i < array.length; i++)
            System.out.print(array[i] + " ");
    }
}

Output

CODE
Array Before Bubble Sort
500 300 200 400 100
Array After Bubble Sort
100 200 300 400 500

How Bubble Sort Works (Step by Step)

CODE
Array: [500, 300, 200, 400, 100]

Pass 1: Compare and swap adjacent pairs
  500 > 300 → swap → [300, 500, 200, 400, 100]
  500 > 200 → swap → [300, 200, 500, 400, 100]
  500 > 400 → swap → [300, 200, 400, 500, 100]
  500 > 100 → swap → [300, 200, 400, 100, 500]  ← 500 at end

Pass 2: Largest remaining "bubbles" to 2nd last
  ...and so on until sorted

Final: [100, 200, 300, 400, 500]

Optimized Bubble Sort (with early exit)

Java
for (int i = 0; i < n - 1; i++) {
    boolean swapped = false;
    for (int j = 0; j < n - i - 1; j++) {
        if (array[j] > array[j + 1]) {
            int temp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = temp;
            swapped = true;
        }
    }
    if (!swapped) break;  // already sorted, exit early
}

Time & Space Complexity

BestAverageWorst
TimeO(n)O(n²)O(n²)
SpaceO(1)O(1)O(1)

Follow AutomateQA