Java Program: Bubble Sort

This article is created to cover a program in Java that performs the sorting of an array using the bubble sort technique. That is, this article includes multiple bubble sort programs in Java. List of bubble sort programs included in this article:

If you're not aware of it, How do bubble sorting works?
Refer to Bubble Sort Logic. Now let's move on and create a bubble sort program in Java.

Bubble Sort in Java: Basic Version

The question is: write a Java program to perform bubble sort based on 10 elements. The 10 elements must be received by the user at runtime of the program. The program given below is its answer. This program sorts in ascending order.

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      int n=10, i, j, x;
      int[] array = new int[n];
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter 10 Elements in Random Order: ");
      for(i=0; i<n; i++)
      {
         array[i] = s.nextInt();
      }
      
      for(i=0; i<(n-1); i++)
      {
         for(j=0; j<(n-i-1); j++)
         {
            if(array[j]>array[j+1])
            {
               x = array[j];
               array[j] = array[j+1];
               array[j+1] = x;
            }
         }
      }
      
      System.out.println("\nThe new sorted array is:");
      for(i=0; i<n; i++)
         System.out.print(array[i]+ " ");
   }
}

The snapshot given below shows the sample run of the above bubble sort program in Java, with user input 10, 19, 11, 18, 12, 17, 13, 16, 14, and 15 as ten elements in random order. Random order means all the elements are neither in ascending nor descending order.

bubble sort program in Java

Bubble Sort in Java: Complete Version

Since the previous program operated based on only 10 elements or numbers, Therefore, I've modified that program to allow the user to define the size of the array along with its elements.

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter the Size: ");
      int n = s.nextInt();
      
      int[] arr = new int[n];
      
      System.out.print("Enter " +n+" Elements in Random Order: ");
      for(int i=0; i<n; i++)
         arr[i] = s.nextInt();
      
      System.out.println("\n\nSorting the array...");
      for(int i=0; i<(n-1); i++)
      {
         for(int j=0; j<(n-i-1); j++)
         {
            if(arr[j]>arr[j+1])
            {
               int temp = arr[j];
               arr[j] = arr[j+1];
               arr[j+1] = temp;
            }
         }
      }
      System.out.println("The array is sorted successfully!");
      
      System.out.println("\nThe new sorted array is:");
      for(int i=0; i<n; i++)
         System.out.print(arr[i]+ " ");
   }
}

The sample run with user input 5 as size and 1, 5, 2, 4, and 3 as five elements is shown in the snapshot given below:

java program bubble sort

Bubble Sort in Java: Descending Order

To sort an array in descending order using the bubble sort technique, only replace the greater than (>) sign with the less than (<), that is available inside the condition of the if statement in the sorting loop. That is, replace:

if(arr[j]>arr[j+1])

from the above program, with:

if(arr[j]<arr[j+1])

Only the matter of a sign, a single character. The whole program gets changed. Here is a snapshot of the sample run with the same user input as the previous program's sample run:

bubble sort in java descending order

Bubble Sort in Java: Print an array after each sort

This is the last program in this article, created to print a new array after each sort using the bubble sort technique. This program provides a rough look at how the bubble sort actually performs.

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter the Size: ");
      int n = s.nextInt();
      
      int[] arr = new int[n];
      
      System.out.print("Enter " +n+" Elements in Random Order: ");
      for(int i=0; i<n; i++)
         arr[i] = s.nextInt();
      
      System.out.println("\nSorting the array...");
      for(int i=0; i<(n-1); i++)
      {
         for(int j=0; j<(n-i-1); j++)
         {
            if(arr[j]>arr[j+1])
            {
               int temp = arr[j];
               arr[j] = arr[j+1];
               arr[j+1] = temp;
            }
         }
         System.out.print("\nStep No." +(i+1)+ " ->  ");
         for(int j=0; j<n; j++)
            System.out.print(arr[j]+ " ");
      }
      System.out.println("\n\nThe array is sorted successfully!");
      
      System.out.println("\nThe new sorted array is:");
      for(int i=0; i<n; i++)
         System.out.print(arr[i]+ " ");
   }
}

Here is its sample run with user input 10 as size and 1, 10, 2, 9, 3, 8, 4, 7, 6, and 5 as ten elements:

java bubble sort ascending order

Below is another sample run with the same user input as size and 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 as ten elements:

java bubble sort program

Same Program in Other Languages

Java Online Test


« Previous Program Next Program »


Liked this post? Share it!