Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. #include <cstdio>
  2. int arr[1000],temp[1000];
  3. void merge(int left,int right,int mid)
  4. {
  5.     int l=left,r=mid+1;
  6.     for(int i=left; i<=right; i++)
  7.     {
  8.         if(l>mid)
  9.         {
  10.             temp[i]=arr[r++];
  11.             continue;
  12.         }
  13.         else if(r> right)
  14.         {
  15.             temp[i]=arr[l++];
  16.             continue;
  17.         }
  18.         temp[i]= (arr[l]< arr[r]) ?  arr[l++] : arr[r++];
  19.     }
  20.     for(int i=left; i<=right; i++)
  21.         arr[i]=temp[i];
  22. }
  23. void mergeSort(int left,int right)
  24. {
  25.     if(left<right)
  26.     {
  27.         int mid=(left+right) >> 1;
  28.         mergeSort(left,mid);
  29.         mergeSort(mid+1,right);
  30.         merge(left,right,mid);
  31.     }
  32. }
  33. int main()
  34. {
  35.     int n;
  36.     scanf("%d",&n);
  37.     for(int i=0; i<n; i++)
  38.         scanf("%d",&arr[i]);
  39.     mergeSort(0,n-1);
  40.     for(int i=0; i<n; i++)
  41.         printf("%d ",arr[i]);
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement