How to sort an array in descending order using selection sort with C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>

void selection_sort_descending(int *arr, int len) {
    for (int i = 0; i < len - 1; i++) {
        int max_i = i;
        
        for (int j = i + 1; j < len; j++) {
            if (arr[j] > arr[max_i]) {
               max_i = j;
            }
        }
        
        int max = arr[max_i];
        arr[max_i] = arr[i];
        arr[i] = max;
    }
}

int main(void)
{
    int arr[] = {2, 141, 3, 4, 21, 13, 30, 50};
    int len = sizeof(arr) / sizeof(arr[0]);
    
    selection_sort_descending(arr, len);
    
    for (int i = 0; i < len; i++) {
        printf("%d ", arr[i]);
    }
    
    return 0;
}






/*
run:

141 50 30 21 13 4 3 2 

*/

 



answered Feb 20, 2024 by avibootz
...