Q. Write a program to sort an array elements in Descending order using Insertion Sort Algorithm.
Insertion Sort :-Insertion sort is a simple sorting algorithm that works out how to sort cards playing in our hands.
Descending order :- Numbers are said to be in descending order when they are arranged from largest to smallest number. Such as 21, 17, 13, 9 and 3 are arranged in descending order.
Insertion Sort Algorithm
START Step 1 : If it is the first element, it is already sorted. return 1; Step 2 : Pick next element Step 3 : Compare with all elements in the sorted sub-list Step 4 : Shift all the elements in the sorted sub-list that is less than the value to be sorted Step 5 : Insert the value Step 6 : Repeat until list is sorted STOP
Insertion Sort Program in Descending order
// Insertion sort in C
#include <stdio.h>
void print_array(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void insertion_sort(int arr[], int size)
{
for (int step = 1; step < size; step++)
{
int key = arr[step];
int j = step - 1;
while (key > arr[j] && j >= 0)
{
// For ascending order, change key> arr[j] to key < arr[j].
arr[j + 1] = arr[j];
--j;
}
arr[j + 1] = key;
}
}
int main()
{
int arr[] = {15, 50, -27, -4, 10};
int size = sizeof(arr) / sizeof(arr[0]);
insertion_sort(arr, size);
printf("Sorted array in descending order:\n");
print_array(arr, size);
}
// Insertion sort in C++
#include <iostream>
using namespace std;
void print_array(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
void insertion_sort(int arr[], int size)
{
for (int step = 1; step < size; step++)
{
int key = arr[step];
int j = step - 1;
while (key > arr[j] && j >= 0)
{
// For ascending order, change key> arr[j] to key< arr[j].
arr[j + 1] = arr[j];
--j;
}
arr[j + 1] = key;
}
}
int main()
{
int arr[] = {15, 50, -27, -4, 10};
int size = sizeof(arr) / sizeof(arr[0]);
insertion_sort(arr, size);
cout << "Sorted array in descending order:\n";
print_array(arr, size);
}
// Insertion sort in Java
import java.util.Arrays;
class LFC {
void insertion_sort(int arr[]) {
int size = arr.length;
for (int step = 1; step < size; step++) {
int key = arr[step];
int j = step - 1;
while (j >= 0 && key > arr[j]) {
// For ascending order, change key> arr[j] to key< arr[j].
arr[j + 1] = arr[j];
--j;
}
arr[j + 1] = key;
}
}
public static void main(String args[]) {
int[] arr = { 15, 50, -27, -4, 10 };
LFC is = new LFC();
is.insertion_sort(arr);
System.out.println("Sorted Array in descending Order: ");
System.out.println(Arrays.toString(arr));
}
}
# Insertion sort in Python
def insertion_sort(arr):
for step in range(1, len(arr)):
key = arr[step]
j = step - 1
while j >= 0 and key > arr[j]:
# For ascending order, change key> arr[j] to key < arr[j].
arr[j + 1] = arr[j]
j = j - 1
arr[j + 1] = key
arr = [15, 50, -27, -4, 10 ]
insertion_sort(arr)
print('Sorted Array in descending Order:')
print(arr)
using System;
namespace InsertionSortDemo {
class LFC {
static void Main(string[] args) {
int[] arr = new int[5] { 15, 50, -27, -4, 10 };
int n = 5, i, j, val, flag;
for (i = 1; i < n; i++) {
val = arr[i];
flag = 0;
for (j = i - 1; j >= 0 && flag != 1; ) {
if (val > arr[j]) {
arr[j + 1] = arr[j];
j--;
arr[j + 1] = val;
}
else flag = 1;
}
}
Console.Write("Sorted Array in descending Order: \n");
for (i = 0; i < n; i++) {
Console.Write(arr[i] + " ");
}
}
}
}
$arr = array(15, 50, -27, -4, 10);
function insertion_sort($arr)
{
for ($i = 0; $i < count($arr); $i++) {
$val = $arr[$i];
$j = $i-1;
while($j>=0 && $arr[$j] < $val){
$arr[$j+1] = $arr[$j];
$j--;
}
$arr[$j+1] = $val;
}
return $arr;
}
$sorted_arr = insertion_sort($arr);
echo "Sorted Array in descending Order: \n";
for($i = 0; $i < 5; $i++)
echo $sorted_arr[$i]." ";
// Insertion sort in C
#include <stdio.h>
void print_array(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void insertion_sort(int arr[], int size)
{
for (int step = 1; step < size; step++)
{
int key = arr[step];
int j = step - 1;
while (key > arr[j] && j >= 0)
{
// For ascending order, change key> arr[j] to key < arr[j].
arr[j + 1] = arr[j];
--j;
}
arr[j + 1] = key;
}
}
int main()
{
int arr[] = {15, 50, -27, -4, 10};
int size = sizeof(arr) / sizeof(arr[0]);
insertion_sort(arr, size);
printf("Sorted array in descending order:\n");
print_array(arr, size);
}
Output
Sorted array in descending order: 50 15 10 -4 -27
Recommended Programs
Insertion Sort Algorithm And ProgramProgram To Check Palindrome Number.