Cod sursa(job #304663)

Utilizator utcistuBarcau Tomsa utcistu Data 15 aprilie 2009 00:27:34
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>

void sort(int *a,int st,int dr)
{
    int i=st,j=dr,m=a[(st+dr)>>1],tmp;
    do
    {
        while (a[i]<m) i++;
        while (a[j]>m) j--;
        if (i<=j)
        {
            tmp=a[i];a[i]=a[j];a[j]=tmp;
            i++;j--;
        }
    }
    while (i<=j);
    if (i<dr) sort (a,i,dr);
    if (j>st) sort (a,st,j);
}

int main()
{
    int n,i,x;
    int *v;
    FILE *fin,*fout;
    fin=fopen("algsort.in","r");
    fout=fopen("algsort.out","w");
    fscanf(fin,"%d",&n);
    v=(int *)malloc(sizeof(int)*n);
    for (i=0;i<n;i++) fscanf(fin,"%d",&v[i]);
    sort(v,0,n-1);
    for (i=0;i<n;i++) fprintf(fout,"%d ",v[i]);
    fclose(fin);
    fclose(fout);
    return 0;
}