Сортировка двумерного массива методом быстрой сортировки на 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;
}