Advertisement
Guest User

Untitled

a guest
Sep 11th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. int  merge(int B[],int p,int C[],int q,int A[]){
  7.     int i,j,k;
  8.     i=j=k=0;
  9.     while(i<p && j<q){
  10.         if(B[i]<= C[j]){
  11.             A[k]=B[i];
  12.             i++;
  13.         }
  14.         else{
  15.             A[k]=C[j];
  16.             j++;
  17.         }
  18.         k++;
  19.     }
  20.     if (i==p){
  21.         while(j<q){
  22.             A[k]=C[j];
  23.             k++;
  24.             j++;
  25.         }
  26.     }
  27.     else{
  28.         while(i<p){
  29.             A[k]=B[i];
  30.             k++;
  31.             i++;
  32.         }
  33.     }
  34. }
  35. int mergeSort(int A[], int fim){
  36.     int B[fim],C[fim],meio,j,i=0;
  37.     int a[100000];
  38.     if(fim>1){
  39.         meio = fim/2;
  40.         if(fim%2==0){
  41.             j=fim-meio;    
  42.         }
  43.         else{
  44.             j=fim-meio-1;
  45.         }
  46.         int guarda=j;
  47.         while(i<meio || j<=fim){
  48.             B[i]=A[i];
  49.             C[i]=A[j];
  50.             j++;
  51.             i++;
  52.         }
  53.         mergeSort(B,meio);
  54.         mergeSort(C,guarda);
  55.         merge(B,meio,C,guarda,A);
  56.     }
  57. }
  58.  
  59.  
  60. int main(){
  61.     int n,valor=0;
  62.     int vet[100000];
  63.    
  64.     scanf("%d",&n);
  65.     for(int i=0;i<n;i++){
  66.         scanf("%d",&vet[i]);
  67.         valor=valor+vet[i];
  68.     }
  69.     int guarda=valor;
  70.     mergeSort(vet,n);
  71.     for(int i=0;i<n;i++){
  72.         printf("%d ",vet[i]);
  73.     }
  74.     /*
  75.     int qtdCupons,cupons;
  76.     scanf("%d",&qtdCupons);
  77.     for(int i=0;i<qtdCupons;i++){
  78.         scanf("%d",cupons);
  79.         valor=valor-vet[n-cupons];
  80.         printf("%d\n",valor);
  81.         valor=guarda;
  82.     }*/
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement