Cod sursa(job #3133097)

Utilizator Poenaru_AndreiPoenaru Andrei Poenaru_Andrei Data 25 mai 2023 08:52:40
Problema Sortare prin comparare Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void b(long long A[],int stanga,int dreapta,int l,long long B[])
{
    int i=stanga , j=dreapta;
    for (int k =stanga;k<l;k++)
    {
        if (i<dreapta && (j >=l || A[i]<=A[j]))
        {
            B[k]=A[i];
            i=i+1;
        }
        else
        {
            B[k]=A[j];
            j=j+1;
        }
    }
}
void copie(long long B[],long long A[],int n)
{
    for (int i=0;i<n;i++)
        A[i]=B[i];
}
void a(long long A[],long long B[],int n)
{
    for (int i= 1; i< n;i=2*i)
    {
        for (int j = 0; j < n; j = j + 2 *i)
        {
            b(A, j, min(j+i, n), min(j+2*i, n), B);
        }
        copie(B, A, n);
    }
}
int main()
{
    int n;
    long long V[100],v[100];
    fin>>n;
    for(int i=0;i<n;i++)
    {
        fin>>V[i];
        v[i]=V[i];
    }
    a(V,v,n);
    for(int i=0;i<n;i++)
    {
        fout<<V[i]<<' ';
    }
}