Cod sursa(job #3196889)

Utilizator Vlad_NistorNIstor Vlad Vlad_Nistor Data 24 ianuarie 2024 22:04:10
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <bits/stdc++.h>
using namespace std;


int mer[1000001], a[1000001];

void interclaseaza(int st, int mid, int dr){
    int i = st;
    int j = mid + 1;
    int k = st - 1;
    while(i <= mid && j <= dr){
        if(a[i] < a[j]){
            mer[++k] = a[i++];
        }else{
            mer[++k] = a[j++];
        }
    }
    for(;i<=mid;i++){
        mer[++k] = a[i];
    }
    for(;j<=dr;j++){
        mer[++k] = a[j];
    }
    for(int ii = st;ii<=dr;ii++){
        a[ii] = mer[ii];
    }
}

void sorteaza(int st, int dr){
    if(st < dr){
        int mid = (st + dr) / 2;
        sorteaza(st,mid);
        sorteaza(mid+1,dr);
        interclaseaza(st, mid, dr);
    }
}

int main(void){
    ofstream cout("algsort.out");
    ifstream cin("algsort.in");
    int n;
    cin >> n;
    for(int i = 1;i<=n;i++){
        cin >> a[i];
    }
    sorteaza(1,n);
    for(int i = 1;i<=n;i++){
        cout << a[i] << ' ';
    }

}