Pagini recente » Cod sursa (job #1350983) | Cod sursa (job #1967895) | Cod sursa (job #2561288) | Cod sursa (job #1174738) | Cod sursa (job #1716951)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMAX=500001;
long long int b[NMAX], a[NMAX];
int i, n;
int sortare(int st, int dr, long long int a[NMAX])
{
int i, j, m, k=0;
if(dr<=st) return 0;
i=st;
m=(st+dr)/2;
j=m+1;
sortare(i, m, a);
sortare(j, dr, a);
while(i<=m && j<=dr){
if(a[i]<=a[j]){
b[++k]=a[i];
i++;
}else{
b[++k]=a[j];
j++;
}
}
for(;i<=m;i++) b[++k]=a[i];
for(;j<=dr;j++) b[++k]=a[j];
k=1;
for(i=st;i<=dr;i++){
a[i]=b[k];
k++;
}
}
int main()
{
fin>>n;
for(i=1;i<=n;i++) fin>>a[i];
sortare(1, n, a);
for(i=1;i<=n;i++) fout<<a[i]<<" ";
return 0;
}