Cod sursa(job #2983969)

Utilizator GFA03Gavrila Florin-Alexandru GFA03 Data 23 februarie 2023 12:49:15
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
int tmp[500005];
void mergesort(int v[], int left, int right)
{
    if(left < right)
    {
        int m = (left + right) / 2;
        mergesort(v, left, m);
        mergesort(v, m+1, right);
        int i = left, j = m+1, k = 0;
        while(i <= m && j <= right)
        {
            if(v[i] < v[j])
                tmp[k++] = v[i++];
            else
                tmp[k++] = v[j++];
        }
        while(i <= m)
            tmp[k++] = v[i++];
        while(j <= right)
            tmp[k++] = v[j++];
        for(i = left, j = 0; i <= right; i++, j++)
            v[i] = tmp[j];
    }
}

int main(){
    int v[500005], n;
    bool ok = true;
    std::ifstream f1("algsort.in");
    std::ofstream f2("algsort.out");
    f1 >> n;
    for(int i = 0; i < n; i++)
        f1 >> v[i];
    
    mergesort(v, 0, n-1);

    for(int i = 0; i < n; i++)
        f2 << v[i] << " ";
}