Software & Finance





Visual C++ - Sorting Algorithm - Bubble Sort





We often using sorting algorithm to sort numbers and strings. Also we have many sorting algorithms. I have explained here on how bubble sort algorithm works. Look at the yellow color high lighting section on output to understand how algorithm works after each iteration.

Click here for C++ Bubble Sort Algorithm
Click here for C++ insertion Sort Algorithm
Click here for C++ Merge Sort Recursive Algorithm
Click here for C++ Merge Sort Iterative Algorithm
Click here for C++ Quick Sort Recursive Algorithm
Click here for C++ Quick Sort Iterative Algorithm

The complete program and test run output are given below:


Source Code


#include <iostream>

#include <string>

 

int BubbleSort()

{

    int max;

    std::cout << "\nProgram for Ascending order of Numeric Values using BUBBLE SORT";

    std::cout << "\n\nEnter the total number of elements: ";

    std::cin >> max;   

 

    int *numarray = new int[max];

 

    for(int i = 0; i < max; i++)

    {

        std::cout << "\nEnter [" << i + 1 << "] element: ";

        std::cin >> numarray[i];

    }

 

    std::cout << "Before Sorting   : ";

    for(int k = 0; k < max; k++)

        std::cout << numarray[k] << " ";

    std::cout << "\n";

 

    for(int i = 1; i < max; i++)

    {

        for(int j = 0; j < max - i; j++)

        {

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

            {

                int temp = numarray[j];

                numarray[j] = numarray[j + 1];

                numarray[j + 1] = temp;

            }

        }

        std::cout << "After iteration " << i << ": ";

        for(int k = 0; k < max; k++)

            std::cout << numarray[k] << " ";

        std::cout << "/*** " << i + 1 << " biggest number(s) is(are) pushed to the end of the array ***/\n";

    }

 

    std::cout << "\n\nThe numbers in ascending orders are given below:\n\n";

    for(int i = 0; i < max; i++)

    {

        std::cout << "Sorted [" << i + 1 << "] element: ";

        std::cout << numarray[i];

        std::cout << "\n";

    }

 

    delete [] numarray;

    return 0;

}

 

int main()

{

    BubbleSort();

    return 0;

}

 

Output


 

Program for Ascending order of Numeric Values using BUBBLE SORT

 

Enter the total number of elements: 8

 

Enter [1] element: 80

Enter [2] element: 60

Enter [3] element: 40

Enter [4] element: 20

Enter [5] element: 10

Enter [6] element: 30

Enter [7] element: 50

Enter [8] element: 70

 

Before Sorting   : 80 60 40 20 10 30 50 70

After iteration 1: 60 40 20 10 30 50 70 80

After iteration 2: 40 20 10 30 50 60 70 80

After iteration 3: 20 10 30 40 50 60 70 80

After iteration 4: 10 20 30 40 50 60 70 80

After iteration 5: 10 20 30 40 50 60 70 80

After iteration 6: 10 20 30 40 50 60 70 80

After iteration 7: 10 20 30 40 50 60 70 80

 

The numbers in ascending orders are given below:

 

Sorted [1] element: 10

Sorted [2] element: 20

Sorted [3] element: 30

Sorted [4] element: 40

Sorted [5] element: 50

Sorted [6] element: 60

Sorted [7] element: 70

Sorted [8] element: 80