Java Program to Bubble Sort(Sinking Sort)


Bubble Sort in Java. Learn java program to write Bubble Sort w3schools. Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.

Bubble Sort in Java | Sinking Sort Technique

Bubble sort, sometimes referred to as sinking sort, is a simple sorting algorithm that repeatedly steps through the list to be sorted, compares each pair of adjacent items and swaps them if they are in the wrong order. The algorithm, which is a comparison sort, is named for the way smaller or larger elements "bubble" to the top of the list. Although the algorithm is simple, it is too slow and impractical for most problems even when compared to insertion sort. It can be practical if the input is usually in sorted order but may occasionally have some out-of-order elements nearly in position.

1) Easy to understand.
2) Easy to implement.
3) In-place, no external memory is needed.
4) Performs greatly when the array is almost sorted (This is part of Optimized Bubble Sort).
5) Widely used by students to clear practical exams or freshers interview process as the end result is the same as that of any sorting technique

Bubble Sort in Java

Example Simulation:

An example of bubble sort. Starting from the beginning of the list, compare every adjacent pair, swap their position if they are not in the right order (the latter one is smaller than the former one). After each iteration, one less element (the last one) is needed to be compared until there are no more elements left to be compared.

Algorithm (Source):

procedure bubbleSort( A : list of sortable items )
    n = length(A)
   Outer: for (int i = 0; i < n; i++) then
 Inner: for (int j = 0; j < n; j++) then
             if (A[i] < A[j]) then
                /* swap them and remember something changed */
                swap( A[i], A[j] )
            end if
        end for inner
    end for outer
end procedure 

Bubble Sort Program in Ascending Order:

package com.adeepdrive.swap.numbers;
public class BubbleSort {
 public static void main(String[] args) {
  int values[] = { 30, 10, 40, 90, 50 };
  int length = values.length;
  System.out.println("Before sorting ");
  for (int value : values) {
   System.out.print(" " + value);
  for (int i = 0; i < length; i++) {
   for (int j = 0; j < length; j++) {
    if (values[i] < values[j]) {
     int temp = values[i];
     values[i] = values[j];
     values[j] = temp;
               System.out.print("For outer loop i value : "+i+" : ");
   for (int value : values) {
    System.out.print(" " + value);
  System.out.println("After sorting in Ascending Order");
  for (int value : values) {
   System.out.print(" " + value);


Before sorting
 30 10 40 90 50
For outer loop i value : 0 :  90 10 30 40 50
For outer loop i value : 1 :  10 90 30 40 50
For outer loop i value : 2 :  10 30 90 40 50
For outer loop i value : 3 :  10 30 40 90 50
For outer loop i value : 4 :  10 30 40 50 90
After sorting in Ascending Order
 10 30 40 50 90

Bubble Sort Program in Descending Order:

To get sorted in descending order, Just do the below change in the above program.

if (values[i] > values[j]) {


Before sorting
 30 10 40 90 50
For outer loop i value : 0 :  10 30 40 90 50
For outer loop i value : 1 :  30 10 40 90 50
For outer loop i value : 2 :  40 30 10 90 50
For outer loop i value : 3 :  90 40 30 10 50
For outer loop i value : 4 :  90 50 40 30 10
After sorting in Descending Order
 90 50 40 30 10

Drawbacks of bubble sort

1) we have to traverse the input array until the last element.
2) Very expensive, O(n2) in the worst case and average case.
3) It does more element assignments than its counterpart, insertion sort.

In the next tutorial, We will learn how we can optimize bubble sort for the largest arrays.



About Us

Author: Venkatesh - I love to learn and share the technical stuff.

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,18,Arrays,24,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,8,Collections,37,Collector,1,Command Line,1,Comparator,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,149,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,38,Dictionary,1,Difference,2,Download,1,Eclipse,3,Efficiently,1,Error,1,Errors,1,Exceptions,8,Fast,1,Files,17,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,9,Grant,1,Grep,1,HashMap,2,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,6,Iterate,2,Jackson API,3,Java,32,Java 10,1,Java 11,6,Java 12,5,Java 13,2,Java 14,2,Java 8,128,Java 8 Difference,2,Java 8 Stream Conversions,4,java 8 Stream Examples,12,Java 9,1,Java Conversions,14,Java Design Patterns,1,Java Files,1,Java Program,3,Java Programs,114,Java Spark,1,java.lang,4,java.util. function,1,JavaScript,1,jQuery,1,Kotlin,11,Kotlin Conversions,6,Kotlin Programs,10,Lambda,2,lang,29,Leap Year,1,live updates,1,LocalDate,1,Logging,1,Mac OS,3,Math,1,Matrix,6,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,2,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,31,String,61,String Programs,28,String Revese,1,StringBuilder,1,Swing,1,System,1,Tags,1,Threads,11,Tomcat,1,Tomcat 8,1,Troubleshoot,26,Unix,3,Updates,3,util,5,While Loop,1,
JavaProgramTo.com: Java Program to Bubble Sort(Sinking Sort)
Java Program to Bubble Sort(Sinking Sort)
Bubble Sort in Java. Learn java program to write Bubble Sort w3schools. Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content