Cod sursa(job #3285046)

Utilizator Steiner2022Popa Stefan Liviu Steiner2022 Data 12 martie 2025 14:38:38
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[10000000],indx=0;
void merger(int start, int m, int end){
    int i=start,j=m+1,k=0;
    int temp[end-start+1];
    while(i<=m && j<=end){
        if (v[i]<v[j]){
            temp[k++]=v[i++];
        }
        else{
            temp[k++]=v[j++];
        }
    }
    while(i<=m){
        temp[k++]=v[i++];
    }
    while(j<=end){
        temp[k++]=v[j++];
    }
    for (int i=start;i<=end;i++){
        v[i]=temp[i-start];
    }
}
void rec_sort(int start, int end){
    if (start>=end){
        return;
    }
    int m=(start+end)/2;
    rec_sort(start,m);
    rec_sort(m+1,end);
    merger(start,m,end);
}
int main(){
    int l,t;
    fin>>l;
    while(fin>>t){
        v[indx++]=t;
    }

    rec_sort(0,l-1);
    for (int i=0;i<l;i++){
        fout<<v[i]<<" ";
    }
}