Pagini recente » Cod sursa (job #2116169) | Cod sursa (job #2539090) | Cod sursa (job #250707) | Cod sursa (job #286434) | Cod sursa (job #540274)
Cod sursa(job #540274)
#include<fstream.h>
#include<stdlib.h>
void msort(int *v,int li,int ls)
{
if(li==ls)return;
int m=(li+ls)/2;
msort(v,li,m);
msort(v,m+1,ls);
int i, j, k, *aux;
aux=(int*)malloc(sizeof(int)*(ls-li+1));
i=li;
j=m+1;
k=0;
while(i<=m && j<=ls)if(v[i]<=v[j])aux[k++]=v[i++];
else aux[k++]=v[j++];
if(i<=m)do aux[k++]=v[i++];while(i<=m);
else while(j<=ls)aux[k++]=v[j++];
for(i=li;i<=ls;i++)v[i]=aux[i-li];
free(aux);
}
int main()
{
int i, nv, *v;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>nv;
v=(int*)malloc(sizeof(int)*nv);
for(i=0;i<nv;i++)f>>v[i];
msort(v,0,nv);
for(i=0;i<nv;i++)g<<v[i]<<' ';
}