Ответы на вопрос:
Код, который необходимо добавить, выделен на прикрепленной картинке красным прямоугольником.
Замечание: везде в коде не указан тип у 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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
alexandrcrivuli25.09.2022 23:58
-
Iulia198829.12.2022 23:37
-
UskovaV9917.09.2022 21:25
-
Tim4ik228121.02.2021 05:07
-
Сutie200405.07.2021 20:24
-
ketgalyschko06.09.2022 10:03
-
evgen22region02.08.2020 00:24
-
sdiana160511.04.2021 16:35
-
Larka201705.03.2023 20:55
-
justnero17.05.2022 11:58
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.