C Program to Sort an Integer Array in Decreasing Order Using Bubble Sort

  • Write a C program to sort to an array in decreasing order using bubble sort.

Required Knowledge

Given an unsorted integer array, we have to sort the elements of the array in decreasing order. As the index of the array increases, the values of the elements should decrease.
For Example:
Input Array : 2 8 4 9 1 0
Output Array : 9 8 4 2 1 0

Algorithm to sort an array in decreasing order using bubble sort
Let inputArray is an integer array having N elements.
  • Bubble sort compares two adjacent element of an array and will swap them if they are out of order. If inputArray [i] < inputArray[i+1] then we will swap elements at position i and i+1 as they are not in decreasing order. As we are sorting in decreasing order, element at index i must be greater than element in i+1 in sorted array.
  • If inputArray [i] >= inputArray[i+1] then we should not swap elements at position i and i+1 as they are already in decreasing order.
  • Next, we will compare i+1 and i+2, then i+2 amd i+3 and so on... till end of the array.
  • If there are N element then we have to repeat above process N-1 times because in every traversal we will put largest element of unsorted sub-array in its sorted position.

C program to sort an array in decreasing order using bubble sort

#include <stdio.h>
#include <conio.h>

int main() {
    int inputArray[100], elementCount, index, i, j, temp; 

    printf("Enter Number of Elements in Array\n");
    scanf("%d", &elementCount);
    printf("Enter %d numbers \n", elementCount);
    
    /* Read array elements */
    for(index = 0; index < elementCount; index++){
        scanf("%d", &inputArray[index]);
    }
    
    /* Sort Array in decreasing order using Bubble Sort */
    for(i = 0; i < elementCount; i++) {
        for(j = 0; j < elementCount-i-1; j++) {
            if(inputArray[j] < inputArray[j+1]) {
             /* Swap inputArray[j] and inputArray[j+1] */
                temp = inputArray[j];
                inputArray[j] = inputArray[j+1];
                inputArray[j+1] = temp;
            } 
        }
    }
     
     printf ("Sorted Array in Decreasing Order\n") ;
    /* Print Sorted Array */
    for(index = 0; index < elementCount; index++){
        printf("%d ", inputArray[index]);
    }
    
     getch();
 }
Output
Enter Number of Elements in Array
7
Enter 7 numbers
1 6 3 0 7 2 9
Sorted Array in Decreasing Order
9 7 6 3 2 1 0
Enter Number of Elements in Array
8
Enter 8 numbers
1 2 1 2 1 2 1 2 
Sorted Array in Decreasing Order
2 2 2 2 1 1 1 1  

Related Topics
C Program to sort elements of an array in increasing order
Program to Find Pythagorean Triplet in an Array
C Program to Move All Zeroes to the End of Array
Program to Search an Element in a Sorted and Rotated Array
C Program to search an element in an array
Program to Find Occurrences of a Number in Sorted Array
Program to Merge One Sorted Array into Another Sorted Array
C Program to find count of each element of an array
C program to find maximum and minimum element of an array
List of all array programs