Home »
C/C++ Data Structure Programs
C program to sort an array in ascending and descending order using insertion sort
Insertion sort program in C: In this tutorial, we will learn how to sort an array in ascending and descending order using insertion sort with the help of the C program?
By IncludeHelp Last updated : August 03, 2023
Insertion sort is a simple sorting method for small data lists, in this sorting technique, one by one element is shifted. Insertion sort has a very simple implementation and is efficient for small data sets.
Problem statement
In this program, we will read N number of elements in a One Dimensional Array and arrange all elements in Ascending and Descending Order using Data Structure Insertion Sort technique.
C program to sort an array in ascending and descending order using insertion sort
/*Insertion Sort - C program to sort an Array
in Ascending and Descending Order.*/
#include <stdio.h>
#define MAX 100
int main()
{
int arr[MAX],limit;
int i,j,temp;
printf("Enter total number of elements: ");
scanf("%d",&limit);
/*Read array*/
printf("Enter array elements: \n");
for(i=0; i<limit; i++)
{
printf("Enter element %3d: ",i+1);
scanf("%d",&arr[i]);
}
/*sort elements in Ascending Order*/
for(i=1; i<(limit); i++)
{
j=i;
while(j>0 && arr[j]<arr[j-1])
{
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
j--;
}
}
printf("Array elements in Ascending Order:\n");
for(i=0; i<limit; i++)
printf("%d ",arr[i]);
printf("\n");
/*sort elements in Descending Order*/
for(i=1; i<(limit); i++)
{
j=i;
while(j>0 && arr[j]>arr[j-1])
{
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
j--;
}
}
printf("Array elements in Descending Order:\n");
for(i=0; i<limit; i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
Output
Enter total number of elements: 10
Enter array elements:
Enter element 1: 40
Enter element 2: 10
Enter element 3: 100
Enter element 4: 20
Enter element 5: 90
Enter element 6: 60
Enter element 7: 80
Enter element 8: 70
Enter element 9: 30
Enter element10: 50
Array elements in Ascending Order:
10 20 30 40 50 60 70 80 90 100
Array elements in Descending Order:
100 90 80 70 60 50 40 30 20 10