Cod sursa(job #2943553)

Utilizator anastasiadumitru3Dumitru Anastasia anastasiadumitru3 Data 21 noiembrie 2022 10:59:13
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>

using namespace std;
#define MaxN 500000
int  v1[MaxN],  v[MaxN];
void merge(int v[], int left, int mij, int right){
int i=left, j=mij+1, cnt=0;
while(i<=mij && j<=right){
    if(v[i]<v[j]){
        v1[cnt]=v[i];
        cnt++;
        i++;
    }
    else {
        v1[cnt]=v[j];
        j++;
        cnt++;
    }
}
while(i<=mij){
    v1[cnt]=v[i];
    cnt++;
    i++;
}
while(j<=right){
    v1[cnt]=v[j];
    cnt++;
    j++;
}
for(int i=0; i<cnt; i++){
    v[left+i]=v1[i];
}
}
void mergesort(int v[], int left, int right){
    if(left>=right)
        return ;
   int mij=(left+right)/2;
    mergesort(v, left, mij);
    mergesort(v, mij+1, right);
    merge(v, left, mij, right);

}
int main()
{
    ifstream in("algsort.in");
    ofstream out("algsort.out");
     int n, a, i;
     in>>n;
     for(i=0; i<n; i++){
        in>>v[i];
     }
     mergesort(v, 0, n-1);
     for(i=0; i<n; i++)
        out<<v[i]<<" ";
    return 0;
}