Программирование алгоритмов ветвления Соотнеси фрагменты программного кода и их результаты.

Рис. 1

Рис. 2

Рис. 3



Назад
Проверить
Ответы на вопрос:
Код, который необходимо добавить, выделен на прикрепленной картинке красным прямоугольником.
Замечание: везде в коде не указан тип у vector. Необходимо указать тип, например vector<int>. В прикрепленном коде все исправлено.
Весь листинг:
#include <iostream>
#include <vector>
using namespace std;
vector<int> merge(vector<int> &A, vector<int> &B) {
int i = 0;
int j = 0;
vector<int> C(A.size() + B.size());
for (int k = 0; k < C.size(); k++) {
// Если в массиве А все элементы закончились
if (i == A.size()) {
C[k] = B[j];
j++;
// Если в массиве B все элементы закончились
} else if (j == B.size()) {
C[k] = A[i];
i++;
} else if (A[i] <= B[j]) {
C[k] = A[i];
i++;
} else {
C[k] = B[j];
j++;
}
}
return C;
}
vector<int> merge_sort(vector<int> &V, int l, int r) {
// Проверяем, не равна ли длина 1
// Частный случай, при котором рекурсия завершается
if (r - l == 1) {
vector<int> res(1);
res[0] = V[l];
return res;
}
// Находим середину массива
int m = (l + r) / 2;
// Сортируем левую и правую половины независимо
vector<int> left = merge_sort(V, l, m);
vector<int> right = merge_sort(V, m, r);
cout << l + 1 << ' '
<< r << ' '
<< right.front() << ' '
<< left.back() << endl;
// Сливаем отсортированные половины
return merge(left, right);
}
int main(){
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) {
cin >> v[i];
}
// Вызов сортировки
vector<int> v_sorted = merge_sort(v, 0, v.size());
// Вывод результата
for (int i = 0; i < v.size(); i++) {
cout << v_sorted[i] << ' ';
}
return 0;
}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
2291605.05.2022 04:13
-
Children70321.04.2020 07:31
-
mboyko200512.10.2022 10:15
-
nif426.04.2021 07:23
-
3drugasikaoztup308.07.2022 17:27
-
bviktoria456702.02.2020 03:15
-
Fania200915.08.2022 18:52
-
ЛюАниме15.10.2022 04:40
-
vikaclevervikap01a7w28.01.2020 05:55
-
Элника02.02.2020 15:05
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.