Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. //interclasare => O(n)      |
  4. //                          |=> mergesort => O(n * log(n) )
  5. //divide et impera => log(n)|
  6.  
  7. int a[1000];
  8.  
  9. void interclasare(int left,int right)
  10. {
  11.     int mij = (left + right) / 2;
  12.     int c[right - left + 1],k = 0;
  13.    
  14.     int i = left,j = mij + 1;
  15.    
  16.     while(i <= mij && j <= right)
  17.         if(a[i] < a[j])
  18.             c[++k] = a[i++];
  19.         else
  20.             c[++k] = a[j++];
  21.  
  22.     while(i <= mij)
  23.         c[++k] = a[i++];
  24.     while(j <= right)
  25.         c[++k] = a[j++];
  26.    
  27.     for(i=left,j = 1;i<=right;i++,j++)
  28.         a[i] = c[j];
  29. }
  30.  
  31. void mergeSort(int left,int right)
  32. {
  33.     if(left < right)
  34.     {
  35.         int mid = (left + right) / 2;
  36.         mergeSort(left, mid);
  37.         mergeSort(mid + 1, right);
  38.         interclasare(left,right);
  39.     }
  40. }
  41.  
  42.  
  43.  
  44. int main()
  45. {
  46.     int n;
  47.     cin>>n;
  48.     for(int i=1,j = n;i<=n;i++,j--)
  49.         a[i] = j;
  50.    
  51.     for(int i=1;i<=n;i++)
  52.         cout<<a[i]<<" ";
  53.    
  54.     cout<<'\n';
  55.    
  56.     mergeSort(1, n);
  57.    
  58.     for(int i=1;i<=n;i++)
  59.         cout<<a[i]<<" ";
  60.    
  61.    
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement