In this page, we will array sorting array element in C++ as ascending and descending order,
In the program, the size of the array-variable is given 10, so it can store a maximum of 10 elements at a time which will be input by the user.
let’s start,
C++ Sorting Array Element as Ascending Order
Here is the program,
#include<iostream>
using namespace std;
int main()
{
int arr[10],size,i;
cout<<"Enter the size of Array: "; cin>>size;
cout<<"Enter the element in the Array\n";
for(i=0;i<size;i++)
{
cin>>arr[i];
}
// display entered element
cout<<"Before Sorting Entered Element Are\n";
for(i=0;i<size;i++)
cout<<arr[i]<<"\t";
// sorting process begin
int temp; // declare third variable for swapping
for(i=0;i<size;i++) //outer-loop
{
for(int j=0;j<=size;j++) //inner-loop
{
if(arr[i]<arr[j]) // represent second element in the array list
{
temp = arr[i]; // first array element assign to variable temp
arr[i] = arr[j]; // second element assigning to first element
arr[j] = temp; // variable temp (means first element) assigning to second element
}
}
}
// display sorting element
cout<<"\nAfter Sorting Entered Element Are\n";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
return 0;
}
OUTPUT
Enter the size of Array:5
Enter the element in the Array
8
7
2
1
4
Before Sorting Entered Element Are
8 7 2 1 4
After Sorting Entered Element Are
1 2 4 7 8
Explanation
In the program, the size of the array-variable is given 10, so it can store a maximum of 10 elements at a time which will be input by the user.
Suppose the user has given the size of the array 5, so 5 elements will be stored in this way,
arr[0] = 8
arr[1] = 7
arr[2] = 2
arr[3] = 1
arr[4] = 4
Now after this, the sorting process will start.
We have used two loops to sort the array elements into ascending order. Where the first array-elements will be accessed from the first-loop, while all the elements of the array from the second-loop will be compared to its first element.
here first-loop called outer-loop and second inner-loop, in the program array element will be sort as follows,
interested in more, these loop will work as follows where variable belong to outer-loop and variable j belong to inner-loop,
i =0, j = 0 size = 5
8 7 2 1 4
for(i = 0; 0 < 5; 0++) // outer loop
{
for(int j = 0; 0 <= 5; 0++) // inner loop
{
if(arr[0] < arr[0]) // 8<8 8<7 8<2 8<1 8<4 all time condition becoming false
{ // so after inner-loop execution will go to outer-loop
temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
}
}
here we swap element 2 and 1 so array,
1 7 8 2 4
arr[0] arr[1] arr[2] arr[3] arr[4]
now again inner-loop will execute but remember here only variable j value will be increase i=3, j = 1
for(int j = 1; 1 <= 5; 1++) //inner-loop
{
if(arr[3] < arr[1]) // 2<7 true
{
temp = arr[3]; // temp = 2
arr[3] = arr[1]; // arr[2]=7
arr[1] = temp; // 2
}
}
here we swap element 7 and 2 now array,
1 2 8 7 4
arr[0] arr[1] arr[2] arr[3] arr[4]
and again inner-loop will execute,and this time value of variable j will be j =2 and variable i value will be same
for(int j = 2; 2 <= 5; 2++) //inner-loop
{
if(arr[3] < arr[2]) // 7<8 true
{
temp = arr[3]; // temp = 7
arr[3] = arr[2]; // arr[2]=8
arr[2] = temp; // 7
}
}
here we swap element 8 and 7 so array now will be,
1 2 7 8 4
arr[0] arr[1] arr[2] arr[3] arr[4]
and again inner-loop will going to be execute but this in if-statement condition becoming false such as,
arr[3] < arr[3] 8<8
so nothing will be implement and execution will go to outer-loop
now value i =4, j = 0 , n = 5
for(i = 4; 4 < 5; 4++) //outer-loop
{
for(int j = 0; 0 <= 5; 0++) //inner-loop
{
but here in if-statement first two condition false
arr[4] < arr[0] 4<1 //false
arr[4] < arr[1] 4<2 // false
but when variable j value become 2 then condition will be true,
if(arr[4] < arr[2]) // 4<7 true
{
temp = arr[4]; // temp = 4
arr[4] = arr[2]; // arr[2]=7
arr[2] = temp; // 4
}
}
}
here we swap element 7 and 4, now array
1 2 4 8 7
arr[0] arr[1] arr[2] arr[3] arr[4]
and again inner-loop will execute,and this time i=4, j = 3 so
for(int j = 4; 4 <= 5; 4++) //inner-loop
{
if(arr[4] < arr[3]) // 7<8 true
{
temp = arr[4]; // temp = 7
arr[4] = arr[3]; // arr[2]=8
arr[3] = temp; // 7
}
}
in last, we swap element 8 and 7
1 2 4 7 8
arr[0] arr[1] arr[2] arr[3] arr[4]
thus this loop will implement and we get sorted element,
C++ Sorting Array Element as Descending Order
ascending to descending order we only change operator < to > in if statement and other statements will be same as above program,
for(i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(arr[i]>arr[j]) // arr[i+1] represent second element in the array list
{
temp = arr[i]; // first array element assign to variable temp
arr[i] = arr[j]; // second element assigning to first element
arr[j] = temp; // variable temp (means first element) assigning to second element
}
}
}
related exercise: