Skip to main content

Java Bubble Sort Example

Introduction
Bubble sort is the simplest sorting algorithm. It has the following steps

a) Iterates through the list
b) Compares the adjacent elements
c) Swap the adjacent elements if they are in not in proper sorting order
d) The list is traversed repeatedly unless the list is sorted

Worst Complexity: O(n*n)
Best Complexity   : O(n)
Alternate name     : Sinking Sort


Implementation using Simple Loops


public class BubbleSortExample {

 private static int array[] = {0,5,2,6,3,1};

 static int temp = 0;

 public static void main(String[] args) {

  bubbleSortAscending();

  System.out.println("Ascending Sorted List");

  for(int value : array) {

   System.out.print(value + " ");

  }

  bubbleSortDescending();

  System.out.println("Descending Sorted List");

  for(int value : array) {

   System.out.print(value + " ");

  }

 }

 private static void bubbleSortAscending() {

  for(int outer=0; outer<array.length; outer++) {

   for(int inner=1; inner < array.length-outer;inner++) {

    //for ascending use Greater sign > for swap check

    if(array[inner-1] > array[inner] ) {

     temp = array[inner-1];

     array[inner-1] = array[inner];

     array[inner] = temp;

    }

   }

  }

 }

 private static void bubbleSortDescending() {

  for(int outer=0; outer<array.length; outer++) {

   for(int inner=1; inner < array.length-outer;inner++) {

    //for descending use lesser sign < for swap check

    if(array[inner-1] < array[inner] ) {

     temp = array[inner-1];

     array[inner-1] = array[inner];

     array[inner] = temp;

    }

   }

  }

 }

}

Implementation using Java 8 Stream and lambda expressions



import java.util.Arrays;

import java.util.stream.IntStream;



public class BubbleSortJava8Example {



 private static int array[] = {0,5,2,6,3,1};

 static int temp = 0;

 public static void main(String[] args) {

  bubbleSortAscending();

  System.out.println("Ascending Sorted List");

  Arrays.stream(array).forEach(System.out::print);

  bubbleSortDescending();

  System.out.println();

  System.out.println("Descending Sorted List");

  Arrays.stream(array).forEach(System.out::print);


 }


 private static void bubbleSortAscending() {

  IntStream.range(0, array.length).flatMap(outer -> IntStream.range(1, array.length - outer))

  .forEach(inner -> {

   if(array[inner-1] > array[inner]) {

    int temp = array[inner-1];

    array[inner-1] = array[inner];

    array[inner] = temp;

   }

  });

 }

 private static void bubbleSortDescending() {

  IntStream.range(0, array.length).flatMap(outer -> IntStream.range(1, array.length - outer))

  .forEach(inner -> {

   if(array[inner-1] < array[inner]) {

    int temp = array[inner-1];

    array[inner-1] = array[inner];

    array[inner] = temp;

   }

  });

 }

}


Input   : 0,5,2,6,3,1
Output: 0 1 2 3 5 6 (Ascending)
Output: 6 5 3 2 1 0 (Descending)

References
https://en.wikipedia.org/wiki/Sorting_algorithm#Bubble_sort

Comments

Popular posts from this blog

Intellij : How to add @author comment to every new class

 Introduction In this tutorial, we will learn how to add @author comments to every new class that we create. We can achieve it using either of the following two solutions Solution 1:  Automatically add @author comments to every new class using Files and Code Templates Open File -> Settings -> Editor -> File and Code Templates -> Includes Click on Includes . Under File Header , enter the following comments text /**  * @author ${USER}  * @Date ${DATE}   */ Intellij - add @author comments Solution 2: Autocompletion of @author Open File  ->  Settings  ->  Editor  -> Live Templates Select Java and then click on + button In Abbreviation, enter @a In template text , enter the following comments           /**             * @author ${USER}             * @Date ${DATE}            */ In option , Expands with select SPACE Intellij - Autocompletion @author You can simply add the @author comments by typing @a and then click SPACE

Eclipse - Server Tomcat v8.5 Server at localhost failed to start.

When I try to launch the tomcat from Eclipse, I encountered the following error Server Tomcat v8.5 Server at localhost failed to start. Solution Step 1  Delete the .snap file located at the following location     eclipse workspace Path\ .metadata\.plugins\org.eclipse.core.resources Step 2 Delete the  tmp0  folder from the following path      eclipse workspace Path \.metadata\.plugins\org.eclipse.wst.server.core Step 3  Delete the server from servers list Step 4  Remove already added Tomcat Server      i)  Click on Define a new Server     ii)  Select Server Runtime Environments     iii) Select the Tomcat Server and remove it as follows Remove Selected Server Step 5 Make sure that correct version of Server is configured in Project Properties Step 6 Restart the Eclipse IDE.

hibernate-release-5.4.4.Final - Required Jars

Introduction Hibernate (Object Relational Mapping framework) is an implementation of Java Persistence API (JPA) specification.   Required Jars for Hibernate 5.4.4 Following Jars resided inside the required folder are the mandatory jars required for Hibernate 5.4.4 antlr-2.7.7.jar byte-buddy-1.9.11.jar classmate-1.3.4.jar dom4j-2.1.1.jar FastInfoset-1.2.15.jar hibernate-commons-annotations-5.1.0.Final.jar hibernate-core-5.4.4.Final.jar istack-commons-runtime-3.0.7.jar jandex-2.0.5.Final.jar javassist-3.24.0-GA.jar javax.activation-api-1.2.0.jar javax.persistence-api-2.2.jar jaxb-api-2.3.1.jar jaxb-runtime-2.3.1.jar jboss-logging-3.3.2.Final.jar jboss-transaction-api_1.2_spec-1.1.1.Final.jar stax-ex-1.8.jar txw2-2.3.1.jar Hibernate 5.4.4 release is compatible with  Java 8 or 11  JPA 2.2 References https://hibernate.org/orm/releases/5.4/