Pagini recente » Cod sursa (job #459379) | Borderou de evaluare (job #2080212) | Cod sursa (job #2774121) | Cod sursa (job #2576333) | Cod sursa (job #340962)
Cod sursa(job #340962)
#include<stdio.h>
#define dim 500001
using namespace std;
long long a[dim], b[dim];
unsigned long n;
void mergesort(int li, int ls)
{ int jum, i, j, k;
if(li == ls) return;
jum = (li+ls)/2;
mergesort(li, jum);
mergesort(jum+1, ls);
i = li; j = jum+1; k = li;
while((i <= jum) || (j <= ls))
{
if((j > ls) || (i <= jum) && (a[i] < a[j]))
{
b[k] = a[i];
i++;
k++;
}
else
{
b[k] = a[j];
j++;
k++;
}
}
for(i = li; i <= ls; i++)
a[i] = b[i];
}
int main()
{ unsigned long i;
FILE *f = fopen("algsort.in", "r");
FILE *g = fopen("algsort.out", "w");
fscanf(f, "%lu", &n);
for(i = 1; i <= n; i++)
fscanf(f, "%lu", &a[i]);
fclose(f);
mergesort(1, n);
for(i = 1; i <= n; i++)
fprintf(g, "%lu ",a[i]);
fprintf(g, "\n");
fclose(g);
return 0;
}