Cod sursa(job #3003764)

Utilizator Alexco2003Codarcea Alexandru-Christian Alexco2003 Data 15 martie 2023 21:56:02
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>

using namespace std;

int w[100000001]= {};

void mergesort(int left, int right, int v[])
{
    int i,j,k=0;
    int mid=(left+right)/2;
    if (left==right)
        return;
    mergesort(left,mid,v);
    mergesort(mid+1,right,v);
    for (i=left,j=mid+1; i<=mid && j<=right;)
    {
        if (v[i]<v[j])
        {
            w[k]=v[i];
            i++;
        }
        else
        {
            w[k]=v[j];
            j++;
        }
        k++;
    }

    for (; i<=mid; i++)
        w[k]=v[i],k++;
    for (; j<=right; j++)
        w[k]=v[j],k++;

    for (i=left; i<=right; i++)
        v[i]=w[i-left];

}

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

    return 0;
}