Сортировка двумерного массива методом быстрой сортировки на c

Как реализовать сортировку двумерного массива методом быстрой сортировки на с ?

 {{1 6 7},     {{1 1 2},
  {3 8 4}, ==>  {3 4 5},
  {5 2 1}}      {6 7 8}}

Ответы (1 шт):

Автор решения: Кирилл Малышев
#include <stdio.h>
#include <stdlib.h>


int compare_ints(const void* a, const void* b)
{
    int arg1 = *(const int*)a;
    int arg2 = *(const int*)b;
 
    if (arg1 < arg2) return -1;
    if (arg1 > arg2) return 1;
    return 0;
 
    // return (arg1 > arg2) - (arg1 < arg2); // possible shortcut
    // return arg1 - arg2; // erroneous shortcut (fails if INT_MIN is present)
}


int main(void) {
    enum {N = 3, M = 3};
    int arr[N][M] = {{1, 6, 7}, {3, 8, 4}, {5, 2, 1}};
    qsort(arr, N * M, sizeof(int), compare_ints);
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

https://ideone.com/Uw6sMl

→ Ссылка