Cod sursa(job #2624194)

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

using namespace std;
int n,x[20],a[100001];
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;
int b[100001];
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()
{ cin>>n;
for(int i=1;i<=n;i++)
    cin>>a[i];
  div(1,n,a);
  for(int i=1;i<=n;i++)
    cout<<a[i]<<" ";
}