Cod sursa(job #2406928)

Utilizator Dragono63Stanciu Rares Stefan Dragono63 Data 16 aprilie 2019 12:39:17
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include<iostream>
#include<algorithm>
#include<fstream>
using namespace std;
int n,v[5000005],c[5000005];

void merget(int st,int dr){

    int mij=(st+dr)/2;

   if(dr-st+1>2){
      merget(st,mij);
      merget(mij+1,dr);
   }
   else{
      if(v[st]>v[dr]) swap(v[st],v[dr]);
      return;
   }
   int i=st,j=mij+1,r=1;
   while(i<=mij && j<=dr){
    if(v[i]<v[j]){
        c[r]=v[i];
        i++;
    }
    else{
        c[r]=v[j];
        j++;
    }
    r++;
   }
   while(i<=mij){
    c[r]=v[i];
    r++;
    i++;
   }
   while(j<=dr){
    c[r]=v[j];
    r++;
    j++;
   }
   r=1;
   for(int x=st;x<=dr;x++){
    v[x]=c[r];
    r++;
   }
}

int main(){

ifstream fin("algsort.in");
ofstream fout("algsort.out");



fin>>n;

for(int i=1;i<=n;i++){
    fin>>v[i];
}
merget(1,n);
for(int i=1;i<=n;i++){
    fout<<v[i]<<" ";
}
return 0;
}