Nu aveti permisiuni pentru a descarca fisierul grader_test18.in
Cod sursa(job #2488085)
Utilizator | Data | 6 noiembrie 2019 09:25:48 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 100 |
Compilator | cpp-32 | Status | done |
Runda | Arhiva educationala | Marime | 0.92 kb |
#include <bits/stdc++.h>
using namespace std;
int n;
int aux[500005],a[500005];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void sortezzz (int left, int right)
{ int i,j,k,mid;
if(left==right) return;
mid=(left+right)/2;
sortezzz(left,mid);
sortezzz(mid+1,right);
for(i=left ; i<=right; i++)
aux[i]=0;
i=left;
j=mid+1;
k=left;
while(i<=mid && j<=right)
{
if(a[i]<a[j])
{
aux[k++]=a[i];
i++;
}
else
{
aux[k++]=a[j];
j++;
}
}
while(i<=mid)
{
aux[k++]=a[i];
i++;
}
while(j<=right)
{
aux[k++]=a[j];
j++;
}
for(i=left; i<=right; i++)
a[i]=aux[i];
}
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
fin>>a[i];
sortezzz(1,n);
for(int i=1; i<=n; i++)
fout<<a[i]<<" ";
}