Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. void MergeSort(vector <int> &v, size_t start, size_t end) {
  7. if (end - start < 2) {
  8. return;
  9. }
  10. if (end - start == 2) {
  11. if (v[start] > v[start + 1]) {
  12. swap(v[start], v[start + 1]);
  13. }
  14. return;
  15. }
  16. MergeSort(v, start, start + (end - start) / 2);
  17. MergeSort(v, start + (end - start) / 2, end);
  18. vector <int> w;
  19. size_t w1 = start;
  20. size_t e1 = start + (end - start) / 2;
  21. size_t w2 = e1;
  22. while (w.size() < end - start) {
  23. if (w1 >= e1 || (w2 < end && v[w2] <= v[w1])) {
  24. w.push_back(v[w2]);
  25. ++w2;
  26. }
  27. else {
  28. w.push_back(v[w1]);
  29. ++w1;
  30. }
  31. }
  32. for (size_t i = start; i < end; ++i) {
  33. v[i] = w[i - start];
  34.  
  35. }
  36. }
  37.  
  38.  
  39. int main() {
  40. vector <int> a(50);
  41. int n = 20;
  42. for (int i = 0; i < n; ++i) {
  43. cin >> a[i];
  44. }
  45.  
  46. MergeSort(a, 0, n);
  47. cout << '/n' << "Vvedite massiv B" << endl;
  48. vector <int> b(100);
  49. for (int j = 0; j < 15; ++j) {
  50. cin >> b[j];
  51. if ((j+1) % 10 == 0) { // j = 9, 9+1 % 10 = 0
  52. for (int k = (j + 1 - 10); k < (j + 1); ++k) { // k = 9 + 1 - 10 = 0 | k < 10
  53. for (int i = 0; i < 20; ++i) { // perebor massiva a
  54. if (a[i] == b[k]) cout << b[i]; // если a[от 0 до 19] == b[от 0 до 9] выводим b[i]
  55. else {
  56. a[n] = b[k]; // a[20] = b[какого-то]
  57. n++; // добавляем значение последнего элемента массива А
  58. }
  59. }
  60. }
  61. MergeSort(a, 0, n);
  62. break;
  63. }
  64. }
  65. for (int i = 0; i < n; ++i) {
  66. cout << a[i] << " ";
  67. }
  68.  
  69. system("pause");
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement