Skip to main content

Bubble Sort | Algorithm | MyCodingNetwork

Bubble Sort

Bubble sort is a sorting algorithm which is used to sort the elements of an array and its time complexity O(N2). This algorithm’s time complexity is not as efficient as Merge Sort but still it is one of the simplest sorting algorithms.

Source Code:


Output:

The highlighted part is the sorted array (ascending order).

Working:

In the program shown above, we have used bubble sort technique to sort the array in ascending order, given by the user as the input (in the main( ) function). The entire bubble sorting algorithm (in the program) takes place in the function bubblesort(), the function takes two parameters. 

When an array undergoes bubble sort, continuous swapping takes place (if the array is not in desired order). The program given above is to arrange the array in ascending order, it can be changed to descending order, simply by changing “greater than” symbol to “less than” symbol on line 33. Swapping takes place from line 36(swapping takes place only if the elements are not in the desired order). Further, there is a boolean variable f for improving the time complexity of the algorithm, it is used to check whether the array is completely swapped or not at each iteration of first for(at line 28 of the program) loop.

Worst-case time complexity: O (N2)

Best-case time complexity: O(N)

Algorithm:

For ascending order:

for(int i=0; i<length-1 ;i++)
        {   f=false;
            for(int j=0; j<(length-i-1);j++)
            {
                if(arr[j]>arr[j+1])
                {
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    f=true;
                }
            }
            if(f==false)
            break;
        }



For descending order:

for(int i=0; i<length-1 ;i++)
        {   f=false;
            for(int j=0; j<(length-i-1);j++)
            {
                if(arr[j]<arr[j+1])//Only greater than
                //symbol is converted to less than symbol
                {
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    f=true;
                }
            }
            if(f==false)
            break;
        }

Hope you liked this explanation, for any doubt or feedback you can write down in the comment section.

Popular posts from this blog

Print a Linked List in Reverse Order | Linked List | Java | MyCodingNetwork

  Print a Linked List in Reverse Order After mastering the four standard operations on a Linked List - Creation, Traversal, Insertion, and Deletion - we will now proceed to the next topic: ' Printing a Linked List in Reverse Order '. It serves as a continuation of our previous discussions. We will build upon the topics and ideas that we have previously explored to further our understanding about Linked List. We 'll be using recursive approach for the implementation. For this a separate recursive function would be needed. Concept of stack is also implemented for print statement. Let's discuss the algorithm for the same: Algorithm: Create a function printReverse() , which takes 'head ' of the Linked List as the parameter. Take a temporary node ' cur ' and assign it with the head of the list. Create a base case which checks if cur==null . If base case is TRUE, then function would return . If base case is FALSE, then the statements following that base case ...

Pattern 2 | Java

  Problem Statement: Write a program to draw the following pattern: * * * * * * * * * * * * * * * (take a variable n which decides the number of rows, for above example, n=5) THE CODE Output: *  * *  * * *  * * * *  * * * * *  * * * * * *          * * * * * * *        * * * * * * * *      * * * * * * * * *    * * * * * * * * * * Simplification : In the above problem, the value of n is 10 (i.e., the number of rows are 10) 1. In the first for loop we have i as the counter variable with initial value of 1 and having a condition i.e. i should be less than or equal to n.  It has a print statement after the second for loop,  System.out.println(); w hich is used for changing the row, each time for the second for loop terminates. 2. In the second for loop we have j as the counter variable with initial value of 1 having a condition i.e. j  should be  less than or equal to i (t...

Code #1 | Hello Java | Basics of Java

Today starting with a very basic coding program in Java. So, the program is Write a program in Java to print "Hello Java!" Output: Hello Java!