Cod sursa(job #2897310)

Utilizator vladadAndries Vlad Andrei vladad Data 3 mai 2022 14:26:35
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, v[500001], c[500001];
void MergeSort(int l, int r) {
    if(l < r) {
        int mid = (l + r) / 2;
        MergeSort(l, mid);
        MergeSort(mid + 1, r);
        int i = l, j = mid + 1, k = 0;
        while(i <= mid && j <= r) {
            if(v[i] < v[j]){
                c[++k] = v[i];
                i++;
            }
            else {
                c[++k] = v[j];
                j++;
            }
        }
        while(i <= mid) {
            c[++k] = v[i];
            i++;
        }
        while(j <= r) {
            c[++k] = v[j];
            j++;
        }
        for(int i = l, j = 1; i <= r; i++, j++)
            v[i] = c[j];
    }
}
int main()
{
    f>>n;
    for(int i=1; i<=n; i++)
        f >> v[i];
    MergeSort(1, n);
    for(int i = 1; i <= n; i++)
        g << v[i] << ' ';
    return 0;
}