irapilguy

Merge Sort

Nov 11th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.54 KB | None | 0 0
  1. #define N 1000
  2. int mas[N];
  3. int arr[N];
  4. void merge(int l, int r, int mid) {
  5.     int i = l;
  6.     int j = mid + 1;
  7.     int k = i;
  8.     while (i <= mid && j <= r) {
  9.         if (mas[i] < mas[j]) {
  10.             arr[k] = mas[i];
  11.             i++;
  12.         }
  13.         else {
  14.             arr[k] = mas[j];
  15.             j++;
  16.         }
  17.         k++;
  18.     }
  19.     while (i <= mid) arr[k++] = mas[i++];
  20.     while (j <= r) arr[k++] = mas[j++];
  21.     for (int a = l; a <= r; a++) mas[a] = arr[a];
  22. }
  23. void mergeSort(int l,int  r) {
  24.     if (l >= r) return;
  25.     int mid = (l + r) / 2;
  26.     mergeSort(l, mid);
  27.     mergeSort(mid + 1, r);
  28.     merge(l, r, mid);
  29. }
Add Comment
Please, Sign In to add comment