Pagini recente » Cod sursa (job #2574767) | Cod sursa (job #2911355) | Cod sursa (job #2786495) | Cod sursa (job #703693) | Cod sursa (job #1834124)
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
void interclasare(long v[], long a, long m, long b)
{
long i=a,j=m+1,k=0,r[b-a+1],t;
while(i<=m && j<=b){
if(v[i]<v[j])
r[++k]=v[i++];
else if(v[j]<v[i])
r[++k]=v[j++];
else{
r[++k]=v[i++];
r[++k]=v[j++];
}
}
for(t=i;t<=m;t++)
r[++k]=v[i++];
for(t=j;t<=b;t++)
r[++k]=v[j++];
k=1;
for(t=a;t<=b;t++)
v[t]=r[k++];
}
void merge_sort(long v[], long st, long dr)
{
long m=(dr+st)/2;
if(st<dr){
merge_sort(v,st,m);
merge_sort(v,m+1,dr);
interclasare(v,st,m,dr);
}
}
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
long n,i;
cin>>n;
long v[n];
for(i=0;i<n;i++)
cin>>v[i];
qsort(v,n,sizeof(long),compare);
for(i=0;i<n;i++)
cout<<v[i]<<" ";
return 0;
}