# Bubble Sort
Bubble sort is a simple comparison-based algorithm.
In which each pair of adjacent elements are compared and swapped, if they are in wrong order.
Steps:
- n is number of elements, k is pass number
- Compare adjacent elements starting from index 0 till index n-k.
- If element on left is greater than element on the right, Swap them.
- Else, move to the next pair.
- At the end of each pass, the greatest element will be at its sorted position.
- Repeat the process.
We use two nested loops to perform bubble sort, outer loop runs from k=1 to k less than n & Inner loop runs n-k times.
# Source Code - C++
#include <iostream>
using namespace std;
//bubble sort function
void BubbleSort(int A[], int n) {
int flag , k , i, temp;
//Outer loop
for( k=1; k<n ; k++)
{
flag = 0;
//inner loop
for( i=0 ; i<n-k ; i++)
{
if(A[i] >A[i+1])
{
//swapping
temp = A[i];
A[i] = A[i+1];
A[i+1] = temp;
//setting flag to 1
flag = 1;
}
}
// if flag==0 means no swaps i.e. array is sorted
if(flag == 0 )
break;
}
}
void displayArray(int A[],int n)
{
int i;
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<"\n";
}
int main()
{
int n,i,e;
cout<<"enter number of elements\n";
cin>>n;
int A[n];
cout<<"enter elements\n";
for(i=0;i<n;i++)
cin>>A[i];
cout<<"Array before sorting:\n";
displayArray(A,n);
//calling bubble sort function
BubbleSort(A,n);
cout<<"Array after sorting:\n";
displayArray(A,n);
return 0;
}