Cod sursa(job #1151090)
Utilizator | Data | 23 martie 2014 20:47:45 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 40 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.89 kb |
#include<stdio.h>
unsigned long n,j,i,a[500000],man; short flag=1;
int main()
{
FILE*f=fopen("algsort.in","r");
fscanf(f,"%lu",&n);
for(i=0;i<n;i++) fscanf(f,"%lu",&a[i]);
fclose(f);
do
{
flag=0;
for(i=1;i<n;i++)
if(a[i-1]>a[i])
{
flag=1;
man=a[i-1];
a[i-1]=a[i];
a[i]=man;
int stop=1;
for(j=i;j>0&&stop;j--)
{
if(a[j]<a[j-1])
{
man=a[j];
a[j]=a[j-1];
a[j-1]=man;
}
else stop=0;
}
}
}while(flag==1);
FILE*g=fopen("algsort.out","w");
for(i=0;i<n;i++) fprintf(g,"%lu ",a[i]);
fclose(g);
return 0;
}