Advertisement
shimul07

Merge sort

Mar 19th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. void merge(int arr[], int l, int m, int r)
  4. {
  5.     int i, j, k;
  6.     int n1 = m - l + 1;
  7.     int n2 = r - m;
  8.     int L[n1], R[n2];
  9.     for (i = 0; i < n1; i++) L[i] = arr[l + i];
  10.     for (j = 0; j < n2; j++) R[j] = arr[m + 1+ j];
  11.     i=0,j=0,k=l;
  12.     while (i < n1 && j < n2)
  13.     {
  14.         if (L[i] <= R[j]) arr[k++] = L[i++];
  15.         else
  16.             arr[k++] = R[j++];
  17.     }
  18.     while (i < n1)
  19.     {
  20.         arr[k++] = L[i++];
  21.     }
  22.     while (j < n2)
  23.     {
  24.         arr[k++] = R[j++];
  25.     }
  26. }
  27. void vengefelo(int arr[], int l, int r)
  28. {
  29.     if (l < r)
  30.     {
  31.         int m = l+(r-l)/2;
  32.         vengefelo(arr, l, m);
  33.         vengefelo(arr, m+1, r);
  34.         merge(arr, l, m, r);
  35.     }
  36. }
  37. void printkoro(int A[], int size)
  38. {
  39.     for (int i=0; i < size; i++) cout<<A[i]<<" ";cout<<endl;
  40. }
  41. int main()
  42. {
  43.     int arr[] = {12, 11, 13, 5, 6, 7};
  44.     int arr_size = sizeof(arr)/sizeof(arr[0]);
  45.     cout<<endl<<"ogochhalo array"<<endl;
  46.     printkoro(arr, arr_size);
  47.     vengefelo(arr, 0, arr_size - 1);
  48.     cout<<"gochhano array"<<endl;
  49.     printkoro(arr, arr_size);
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement