Guest User

Untitled

a guest
Apr 22nd, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. #define n 5
  4. const int constante = 100000;
  5.  
  6. void intercala ( int A[n],int l,int m , int r){
  7.  
  8.     int n1= m-l +1;
  9.         int n2= r-m;
  10.         int v1[n1+1];
  11.         int v2[n2+2];
  12.         int i,j ,k;
  13.         for (i=0;i<n1;i++){
  14.         v1[i]=A[l+i];
  15.     }
  16.     for (i=0;i<n2;i++){
  17.         v2[i]=A[m+1+i];
  18.     }
  19.     v1[n1]=constante;
  20.     v2[n2]=constante;
  21.     i=0;
  22.     j=0;
  23.     for(k=l;k<=r;k++){
  24.         if(v1[i]<v2[j]){
  25.             A[k]=v1[i];
  26.             i++;
  27.         }
  28.         else{
  29.             A[k]=v2[j];
  30.             j++;
  31.         }
  32.     }
  33.     }
  34. void mergesort_aux( int A[n], int l, int r){
  35.     if(l<r){
  36.         int meio=(l+r)/2;
  37.         mergesort_aux(A,l,meio);
  38.         mergesort_aux(A,meio+1,r);
  39.         intercala(A,l,meio,r);
  40.         }
  41.     }
  42.  
  43. void mergesort(int A[n]){
  44.     mergesort_aux(A,0,n-1);
  45.     }
  46.  
  47. int main (){
  48.     int A[n];
  49.     int i;
  50.     for (i=0;i<n;i++){
  51.         cin>>A[i];
  52.     }
  53.     mergesort(A);
  54.     for (i=0;i<n;i++){
  55.         cout<<A[i]<<" ";
  56.     }  
  57.     return 0;
  58.    
  59. }
Add Comment
Please, Sign In to add comment