Почему рекурсивная функция здесь стоит перед swap-функцией? - PullRequest
0 голосов
/ 05 июля 2018

Интересно насчет рекурсии здесь в функции перестановки, рекурсия здесь - сортировка массива по заданному числу (x), элементы меньше X, отсортированные в начале, и элементы больше X, отсортированные в конце. массива. но, как вы можете видеть в последних двух строках, важно ли ставить рекурсию перед swap? И что случилось, если поставить рекурсию после обмена? всегда ли нужно делать рекурсию раньше?

void rearrange(int a[], int n, int x) {
    if (n == 0)
        return;
    if (a[0] <= x)
        rearrange(a + 1, n - 1, x);
    else {
        if (a[n - 1] > x)
            rearrange(a, n - 1, x);
        else {
            rearrange(a + 1, n - 2, x);
            swap(a, a + n - 1);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...