Cod sursa(job #1547514)

Utilizator al3x_bujBujor Alexandru-Ionut al3x_buj Data 9 decembrie 2015 17:13:05
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#include <stdlib.h>

int a[500000],n;
void QUICKSORT(int inf, int sup)
{
  int x, i, j, t;
  i = inf;
  j = sup;
  int rand();
  x = a[rand()%(j-i)+i];
  do {
    while ( (i < sup) && (a[i] < x) ) i++;
    while ( (j > inf) &&(a[j] > x) ) j--;
    if ( i<= j ) {
      t = a[i];
      a[i] = a[j];
      a[j] = t;
      i++;
      j--;
    }
  } while ( i <= j );
  if ( inf < j ) QUICKSORT(inf, j);
  if ( i < sup ) QUICKSORT(i, sup);
}

int main()
{
    int i;
    FILE *f,*g;
    f=fopen("algsort.in","r");
    g=fopen("algsort.out","w");
    fscanf(f,"%d",&n);
    for(i=0;i<n;i++)
        fscanf(f,"%d",&a[i]);
    QUICKSORT(0,n-1);
    for(i=0;i<n;i++)
        fprintf(g,"%d ",a[i]);
    fprintf(g,"\n");
    return 0;
}