Cod sursa(job #2624202)

Utilizator anayepAna-Maria Ungureanu anayep Data 4 iunie 2020 16:36:42
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>

using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long long n,x[20],a[500001];
void sortare(int p,int q,int a[])
{ int aux=0;
if(a[p]>a[q]) {
    aux=a[p];
    a[p]=a[q];
    a[q]=aux;
}
}
void intercls(int p,int q,int m,int a[])
{ int y=0;
int i=p;
int j=m+1;
int k=1;
long long b[500001];
while(i<=m and j<=q)
{
    if(a[i]>a[j]) {
      b[k]=a[j];
      k++;
      j++;
    }
    else {
        b[k]=a[i];
        k++;
        i++;
    }

}

while(j<=q) {
    b[k]=a[j]; j++; k++;
}
while(i<=m) {
    b[k]=a[i]; i++; k++;
}
k=1;
for(i=p;i<=q;i++)
    {a[i]=b[k];
k++;}
}
void div(int p,int q,int a[])
{
    if(q-p<=1) sortare(p,q,a);
    else
    {
        int m=(p+q)/2;
        div(p,m,a);
        div(m+1,q,a);
        intercls(p,q,m,a);
    }
}
int main()
{ f>>n;
for(int i=1;i<=n;i++)
    f>>a[i];
  div(1,n,a);
  for(int i=1;i<=n;i++)
    g<<a[i]<<" ";
}