Быстрая сортировка Си/С++ - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть быстрая сортировка:
void quick_sort(int* sarr, int j) {
    int size = j;
    int k = 0;
    int c = sarr[(int)(j / 2)];
    int tmp = 0;
    do {
        while (sarr[k] < c) k++;
        while (sarr[j] > c) j--;
 
        if (k <= j) {
            tmp = sarr[k];
            sarr[k] = sarr[j];
            sarr[j] = tmp;
            k++;
            j--;
        }
    } while (k <= j);
    if (j > 0) quick_sort(sarr, j);
    if (j > 0) quick_sort(sarr + k, size - k);
}
Как сделать что бы сортировались только четные числа?

Решение задачи: «Быстрая сортировка Си/С++»

textual
Листинг программы
void quick_sort(int* sarr, int j) {
    int size = j;
    int k = 0;
    int c = sarr[(int)(j / 2)];
    int tmp = 0;
    do {
        while (sarr[k] < c) k++;
        while (sarr[j] > c) j--;
 
        if(sarr[j]%2==0)
            if (k <= j) {
                tmp = sarr[k];
                sarr[k] = sarr[j];
                sarr[j] = tmp;
                k++;
                j--;
            }
    } while (k <= j);
    if (j > 0) quick_sort(sarr, j);
    if (j > 0) quick_sort(sarr + k, size - k);
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5