Pagini recente » Cod sursa (job #2098714) | Istoria paginii runda/hlo_cj_av_l4/clasament | Cod sursa (job #2227981) | moisil2016-10 | Cod sursa (job #721883)
Cod sursa(job #721883)
#include<fstream>
#define DIM 500001
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n , a[DIM] , i , j,b[DIM],ok;
void interclasare(int, int, int, int[]);
void sort( int ls, int ld , int a[]);
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
sort(1,n,a);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}
void sort( int ls, int ld , int a[]){
if(ld-ls>=1){
int m=(ls+ld)/2;
sort(ls , m ,a);
sort(m+1,ld,a);
interclasare(ls,m,ld,a);
}
}
void interclasare(int ls, int m , int ld , int a[])
{
int i=ls; int j=m+1;
int k=ls-1;
while(i<=m && j<=ld)
if(a[i]<a[j])
b[++k]=a[i++];
else b[++k]=a[j++];
for(;i<=m;i++)
b[++k]=a[i];
for(;j<=ld;j++)
b[++k]=a[j];
for(i=ls;i<=ld;i++)
a[i]=b[i];
}