Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <unistd.h>
  4.  
  5. using namespace std;
  6.  
  7. int* merge (int* left, int* right, int ln, int rn){
  8.     int* arr = new int [ln+rn];
  9.     int l=0, r=0, k=0;
  10.     while (l<ln && r<rn) {
  11.         if (left[l] <= right[r]){
  12.             arr[k] = left[l];
  13.             l++; k++;
  14.         }
  15.         else {
  16.             arr[k] = right[r];
  17.             r++; k++;
  18.         }
  19.     }
  20.     while (l < ln){
  21.         arr[k] = left[l];
  22.         l++; k++;
  23.     }
  24.     while (r < rn){
  25.         arr[k] = right[r];
  26.         r++; k++;
  27.     }
  28.     return arr;
  29. }
  30.  
  31. void print(int somearr[], int n) {
  32.     for (int i = 0; i < n; i++) {
  33.         cout << somearr[i] << " ";
  34.     }
  35.     cout << endl;
  36. }
  37.  
  38. int main(){
  39.     int left_arr[3];
  40.     left_arr[0] = 10;
  41.     left_arr[1] = 12;
  42.     left_arr[2] = 17;
  43.     int right_arr[5];
  44.     right_arr[0] = 0;
  45.     right_arr[1] = 1;
  46.     right_arr[2] = 11;
  47.     right_arr[3] = 18;
  48.     right_arr[4] = 20;
  49.     print(left_arr, 3);
  50.     print(right_arr, 5);
  51.     int * result = merge(left_arr, right_arr, 3, 5);
  52.     print(result, 8);
  53.    return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement