Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- void MergeSort(vector <int> &v, size_t start, size_t end) {
- if (end - start < 2) {
- return;
- }
- if (end - start == 2) {
- if (v[start] > v[start + 1]) {
- swap(v[start], v[start + 1]);
- }
- return;
- }
- MergeSort(v, start, start + (end - start) / 2);
- MergeSort(v, start + (end - start) / 2, end);
- vector <int> w;
- size_t w1 = start;
- size_t e1 = start + (end - start) / 2;
- size_t w2 = e1;
- while (w.size() < end - start) {
- if (w1 >= e1 || (w2 < end && v[w2] <= v[w1])) {
- w.push_back(v[w2]);
- ++w2;
- }
- else {
- w.push_back(v[w1]);
- ++w1;
- }
- }
- for (size_t i = start; i < end; ++i) {
- v[i] = w[i - start];
- }
- }
- int main() {
- vector <int> a(50);
- int n = 20;
- for (int i = 0; i < n; ++i) {
- cin >> a[i];
- }
- MergeSort(a, 0, n);
- cout << '/n' << "Vvedite massiv B" << endl;
- vector <int> b(100);
- for (int j = 0; j < 15; ++j) {
- cin >> b[j];
- if ((j+1) % 10 == 0) { // j = 9, 9+1 % 10 = 0
- for (int k = (j + 1 - 10); k < (j + 1); ++k) { // k = 9 + 1 - 10 = 0 | k < 10
- for (int i = 0; i < 20; ++i) { // perebor massiva a
- if (a[i] == b[k]) cout << b[i]; // если a[от 0 до 19] == b[от 0 до 9] выводим b[i]
- else {
- a[n] = b[k]; // a[20] = b[какого-то]
- n++; // добавляем значение последнего элемента массива А
- }
- }
- }
- MergeSort(a, 0, n);
- break;
- }
- }
- for (int i = 0; i < n; ++i) {
- cout << a[i] << " ";
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement