//HOW ABOUT MORE EFFICIENT SOLUTION
// BASIC IDEA- REPEATEDLY SWAP TWO ADJACENT ELEMENTS IF THEY ARE IN A WRONG ORDER.
#include<bits/stdc++.h>
using namespace std;
void bubblesort(int a[], int n)
{
bool swapped=false;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1]) // check if ADJACENT elements are in a wrong order.
{
swap(a[j],a[j+1]); //if they are swap them.
swapped=true;
}
}
if(swapped==false) break; // if for any particular iteration our array doesn't swap--
// -- any numbers then we may conclude that our array has already been sorted. :)
}
}
int main()
{
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++) cin>>a[i];
bubblesort(a,n);
for(int i=0;i<n;i++) cout<<a[i]<<" ";
return 0;
}
// Bubble Sort algorithm -> jump to line 21
...
#include <iostream> // Necessary for input output functionality
#include <bits/stdc++.h> // To simplify swapping process
...
...
/**
* Sort array of integers with Bubble Sort Algorithm
*
* @param arr Array, which we should sort using this function
* @param arrSZ The size of the array
* @param order In which order array should be sort
*
* @return Sorted array of integers
*/
void bubbleSortInt(double arr[], int arrSz, string order = "ascending")
{
for (int i = 0; i < arrSz; ++i)
{
for (int j = 0; j < (arrSz - i - 1); ++j)
{
// Swapping process
if ((order == "descending") ? arr[j] < arr[j + 1] : arr[j] > arr[j + 1])
{
swap(arr[j], arr[j + 1]);
}
}
}
return; // Optional because it's a void function
} // end bubbleSortInt
...
int main()
{
...
return 0; // The program executed successfully.
} // end main