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

YouTube Material 1| Hindi Video

Video Lecture- https://youtu.be/StCjnwfS0NQ Basic structure of a Java program public class xyz { public static void main(String args[]) { //Code //Code //Code //Code //Code }} public - access specifier/modifiers which makes the particular entity accessible throughout the program i.e., it can be accessed by other classes also. static - a keyword by which we don't have to create an object of that particular entity. void- return type keyword by which the function becomes non-returning type. main - name of the function String args[] - argument for main function Print Statement Syntax: System.out.println() ; Three types of Iteration statements are: for loop Example: for(int i=0; i<=5;i++) { //Code //Code //Code //Code //Code } The body of the above for loop will be executed 6 times. while loop( entry control loop) Syntax: while (condition) { //Code //Code //Code //Code //Code } The body of the above while loop will be executed continuously as long as the condition of the while is tr...

Binary Search | The-Algorithm-Drive | MyCodingNetwork

Binary Search The next algorithm, we are going to study is Binary Search . As the name suggests, it is a searching algorithm. It is one of the very famous searching techniques. Unlike its counterpart linear search, it is way more advanced.  Time complexity of linear search is O(N) whereas that of binary search is O (log N). Source Code: Output Number Found at index =5 Working Let’s come on to the working of the algorithm, as you can see in the above program, we need a sorted array to perform binary search algorithm. 1.    Here, bin function in the above program it accepts 4 parameters, that is, the array arr , lower index low , higher index high and the searching number sn . 2.    Next, we have a do-while loop to check if high is greater than or equal to low (high>=low). If at any point of iteration this condition is not satisfied, it means the searching number sn does not exist in the array. Following is the algorithm for binary search: while ...

Pattern 4 | Java | MyCodingNetwork | Alok Tripathi (Code 6)

Problem Statement: Write a program to draw the following pattern where number of rows are decided by the user and given to the program as input:         *       * *     * * *   * * * * * * * * * * * * * * * (Take a variable n which takes the number of rows as input from the user, For above example, n=6) OUTPUT: The above program is the extension of the previous program (Pattern #3). This program asks the user to input the number of rows that it wants in the program. For accepting the input, the program has Scanner class which has been extracted from the package java.util . In this program, we will learn how to receive data from the user. If you remember in three previous patterns, the program itself had the input of number of rows where n=8, but now the user will tell the program how many rows are to be added.   Simplification 1.     In Line 1, the java.util  package has been imported, to use the Scanner cl...