Здравствуйте, я не могу переделать сортировку Хоара на языке С. Мне нужна сортировка двумерного массива

Есть функция, в которую передается двумерный массив из 20 строк и 2х столбцов. В первом столбце хранятся индексы элементов, во втором - значения(размер файла). Мне надо отсортировать этот массив методом Хоара так, чтобы размер файлов шел по возрастанию, и чтобы каждому размеру соответсвовал свой индекс. Помогите, пожалуйста

void hoare_sort(int hoara[20][2], int first, int last) {

int i = first, j = last;
int tmp, x = hoara[(first + last) / 2][1];

do {
    while (hoara[i][1] < x)
        i++;
    while (hoara[j][1] > x)
        j--;

    if (i <= j)
    {
        if (i < j)
        {
            tmp = hoara[i][1];
            hoara[i][1] = hoara[j][1];
            hoara[j][1] = tmp;
        }
        i++;
        j--;
    }
} while (i <= j);

if (i < last)
    hoarasort(hoara[20][2], i, last);
if (first < j)
    hoarasort(hoara[20][2], first, j);

printf("Sorted array by Hoare: \n");
for (int i = 0; i < 20; i++) {
    printf("%d\n", hoara[i][1]);
}

}


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