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
|