Рубрики

ВОРОТА | GATE-CS-2015 (Mock Test) | Вопрос 11

Пусть swap () будет функцией, которая меняет два элемента по их адресам. Рассмотрим следующую функцию C.

void fun(int arr[], int n)

{

    for (int i = 0; i < n; i+=2)

    {

        if (i>0 && arr[i-1] > arr[i] )

            swap(&arr[i], &arr[i-1]); 

        if (i<n-1 && arr[i] < arr[i+1] )

            swap(&arr[i], &arr[i + 1]);

    }

}

Если в функцию передан массив {10, 20, 30, 40, 50, 60, 70, 80}, массив изменяется на
(А) {20, 10, 40, 30, 60, 50, 80, 70}

(B) {10, 30, 20, 40, 60, 50, 80, 70}
(C) {10, 20, 30, 40, 50, 60, 70, 80}
(D) {80, 70, 60, 50, 40, 30, 20, 10}

Ответ: (А)
Объяснение: Функция сортирует массив по форме волны. См. Сортировка массива в форме волны для более подробной информации.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2015 (Mock Test) | Вопрос 11

0.00 (0%) 0 votes