Cod sursa(job #3254517)

Utilizator answarIonascu Andrei answar Data 7 noiembrie 2024 18:22:01
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n,m,i,j;
int v[500010],w[500010];
void srt(int st,int dr) {
    if (st<dr) {
        int mid=(st+dr)/2;
        srt(st,mid);
        srt(mid+1,dr);
        int i=st;
        int j=mid+1;
        int k=st-1;
        while (st<=mid&&j<=dr) {
            if (v[i]<v[j]) {
                w[++k]=v[i];
                i++;
            }
            else {
                w[++k]=v[j];
                j++;
            }
        }
        while (i<=mid) {
            w[++k]=v[i];
            i++;
        }
        while (j<=dr) {
            w[++k]=v[j];
            j++;
        }
        for (i=st;i<=dr;i++) {
            v[i]=w[i];
        }
    }
}
int main () {
    cin>>n;
    for (i=1;i<=n;i++) {
        cin>>v[i];
    }
    srt(1,n);
    for (i=1;i<=n;i++) {
        cout<<v[i]<<" ";
    }
}