Pagini recente » Cod sursa (job #141537) | Cod sursa (job #1590274) | Cod sursa (job #1592304) | Cod sursa (job #767291) | Cod sursa (job #2624202)
#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]<<" ";
}