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

C Program to Sort an Integer 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