Cod sursa(job #3005340)

Utilizator AndPitAndreeaPiticar AndPit Data 16 martie 2023 21:37:21
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.25 kb
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500001],n;
void sortare(int p, int q, int a[100])
{
    int m;
    if(a[p]>a[q])
    {
        m=a[p];
        a[p]=a[q];
        a[q]=m;
    }
}
void intercl(int p, int q, int m, int a[100])
{
    int b[100], i,j,k;
    i=p;
    j=m+1;
    k=1;
    while(i<=m&&j<=q)
        if(a[i]<=a[j])
        {
            b[k]=a[i];
            i++;
            k++;
        }
        else
        {
            b[k]=a[j];
            j++;
     algsort       k++;
        }
    if(i<=m)
        for(j=i; j<=m; j++)
        {
            b[k]=a[j];
            k++;
        }
    else
        for(i=j; i<=q; i++)
        {
            b[k]=a[i];
            k++;
        }
    k=1;
    for(i=p; i<=q; i++)
    {
        a[i]=b[k];
        k++;
    }

}
void divimp(int p, int q, int a[20])
{
    int m;
    if((q-p)<=1)
        sortare(p,q,a);
    else
    {
        m=(p+q)/2;
        divimp(p,m,a);
        divimp(m+1,q,a);
        intercl(p,q,m,a);
    }
}
int main()
{
    int i;
    f>>n;
    for(i=1; i<=n; i++)
        f>>a[i];
    divimp(1,n,a);
    for(i=1; i<=n; i++)
        g<<a[i]<<" ";
    return 0;
}