Coding Bubble Sort in Java

People like bubble sorts -- could it be the name? One nice aspect of bubble sorts is that they can quit early if the elements are almost sorted. 

NOTE: As always, it's better if you don't write your own sorts. Java has better sort methods in java.util.Arrays.sort(...) and java.util.Collections.sort(...). But sorts are excellent practice, and are a technique that all students are expected to understand to some extent. 

The Bubble Sort method works like this: In a series of n-1 iterations, the successive elements, list[index] and list[index + 1] of list are compared. If list[index] is greater than list[index + 1], then the elements of list[index] and list[index + 1] are swapped. 

This process is repeated through the list until no swaps are necessary. On average, for a list with length 'n', the Bubble Sort method takes: 

 *          key comparisons:    (n*(n-1))/2              
 *          item assignments:   (n*(n-1))/4              

public class TestBubbleSort {
    public static void main(String[] args) {
        int unsortedArray[] = {10, 97, 6, 23, 0, -45, 697, -1000, 1, 0}; //Random set of numbers for example.
        int i;
        bubbleSort(unsortedArray, unsortedArray.length); //Pass the array to be sorted and its length.
        System.out.println("After sorting, the list elements are: "); //Just to show you it worked. :)
        for(i=0; i<unsortedArray.length; i++) {
            System.out.print(unsortedArray[i] + " ");

    private static void bubbleSort(int[] unsortedArray, int length) {
        int temp, counter, index;
        for(counter=0; counter<length-1; counter++) { //Loop once for each element in the array.
            for(index=0; index<length-1-counter; index++) { //Once for each element, minus the counter.
                if(unsortedArray[index] > unsortedArray[index+1]) { //Test if need a swap or not.
                    temp = unsortedArray[index]; //These three lines just swap the two elements:
                    unsortedArray[index] = unsortedArray[index+1];
                    unsortedArray[index+1] = temp;

<-- End of Program -->

Do you have a Java Problem?
Ask It in The Java Forum

Java Books
Java Certification, Programming, JavaBean and Object Oriented Reference Books

Return to : Java Programming Hints and Tips

All the site contents are Copyright © and the content authors. All rights reserved.
All product names are trademarks of their respective companies.
The site is not affiliated with or endorsed by any company listed at this site.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
 The content on this site may not be reproduced or redistributed without the express written permission of or the content authors.