Bubble sort

Bubble sort, 
Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.
Example :
First pass:
( 5 1 4 2 8 ) –> ( 1 5 4 2 8 ), Here, algorithm compares the first two elements, and swaps since 5 > 1.
( 1 5 4 2 8 ) –> ( 1 4 5 2 8 ), Swap since 5 > 4
( 1 4 5 2 8 ) –> ( 1 4 2 5 8 ), Swap since 5 > 2
( 1 4 2 5 8 ) –> ( 1 4 2 5 8 ), Now, since these elements are already in order (8 > 5), algorithm does not swap them.
Second pass:
( 1 4 2 5 8 ) –> ( 1 4 2 5 8 )
( 1 4 2 5 8 ) –> ( 1 2 4 5 8 ), Swap since 4 > 2
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )
Now, the array is already sorted, but our algorithm does not know if it is completed. The algorithm needs one whole pass without any swap to know it is sorted.
Third pass:
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4 5 8 )
Worst and average case time complexity:(n*n). Worst case occurs when array is reverse sorted.
Best case time complexity:(n). Best case occurs when array is already sorted.
Auxiliary space : O(1)
Boundary classes: Bubble sort takes minimum time (Order of n) when elements are already sorted.
//c++ program to implementing bubble sort. 

#include <bits/stdc++.h> 

using namespace std; 

  

void swap(int *xp, int *yp)  
{  

    int temp = *xp;  

    *xp = *yp;  

    *yp = temp;  
}  

  
// A function to implement bubble sort  

void bubbleSort(int arr[], int n)  
{  

    int i, j;  

    for (i = 0; i < n-1; i++)      

      

    // Last i elements are already in place  

    for (j = 0; j < n-i-1; j++)  

        if (arr[j] > arr[j+1])  

            swap(&arr[j], &arr[j+1]);  
}  

  
/* Function to print an array */

void printArray(int arr[], int size)  
{  

    int i;  

    for (i = 0; i < size; i++)  

        cout << arr[i] << " ";  

    cout << endl;  
}  

  
// Driver code  

int main()  
{  

    int arr[] = {64, 34, 25, 12, 22, 11, 90};  

    int n = sizeof(arr)/sizeof(arr[0]);  

    bubbleSort(arr, n);  

    cout<<"Sorted array: \n";  

    printArray(arr, n);  

    return 0;  
}  

  
// This code is contributed by rathbhupendra 
Output :
Sorted array:
11 12 22 25 34 64 90
Posted on by