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

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

Problem Statement: Write a program to make a square and mark out its diagonals. Accept the length as input from the user and give output in the following manner: And ( In simple words, we have printed stars (*) on the boundary positions of the matrix and on the centre positions of the matrix we have printed blank space( ) )   THE CODE: Sample Output: In the above program, two int variables r to accept the length of square as input. On line 7, following statement is used to accept the input from the user: int r = sc . nextInt ();   For taking the input Scanner class has been used, more about Scanner class Algorithm: Two for loops are defined: ·         First for loop with counter variable i has initial value 1, conditional statement i less than or equal to r and an updating statement i++ . ·         Inside the first loop there is a second for loop, with counter variable j has ini...

Pattern 1 | Java

Problem Statement: Write a program to draw the following pattern of NxN(where N is the input): * * * * * * * * * * * * * * * * * * * * * * * * * (here, N=5) THE CODE Output: Here, the input is 8 Simplification : In the above problem, two for loops are used: 1. The first for loop is having i as counter variable with  initial value of 1 and ending value of 10 with an updation statement i++. 2. The second for loop is having j as counter variable with initial value of 1 and ending value of 10 with an updation statement j++. The second  for loop is used to print  * in the respective column (the value of j represents the column number). It is having a print statement System.out.println("* ") to print * in each column(for convenience, I've added a space for better visibility of columns in the output). The first for loop is used to define rows( the value of i represents the row number). It is having a print statement System.out.print() to change rows each time the second for ...

Kadane's Algorithm | The-Algorithm-Drive | MyCodingNetwork

Kadane's Algorithm Kadane’s algorithm is used to find largest contagious subarray sum for a given array. It is one of the most common types of algorithms used to find the subarray with largest sum. The time complexity of this algorithm is O(N) .     Output :            Code Explanation: On line 4, there’s an  int  array variable a[ ], which is the array on which we have to perform our task. We have stored the value of the array, in variable l. cur_max,  is a temporary variable for traversing the array and storing positive sum occurring and update it after each iteration.  global_max , is a variable for storing the highest sum of subarray. ‘ start ’ variable stores the starting index of the desired subarray and ‘ end ’ variable stores the last index of that subarray, that is, contagious subarray with the highest sum. Working: Talking about the working of this algorithm, it uses one for loop and the entire operation can be perfo...