Cod sursa(job #349340)

Utilizator mihaionlyMihai Jiplea mihaionly Data 19 septembrie 2009 09:52:02
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
#define nmax 500009
typedef long long big;
typedef unsigned uint;
FILE *f=fopen("algsort.in","r");
FILE *g=fopen("algsort.out","w");
big A[nmax];
uint n;
void swap(big &x,big &y)
 {
 big xx=x;
 x=y;
 y=xx;
 }
void read()
 {
 fscanf(f,"%ld",&n);
 for(int i=1;i<=n;i++)
  fscanf(f,"%ld",&A[i]);
 }
void qsort(uint l,uint r)
 {
 uint i,j,k;
 j=l-1;
 for(i=l;i<=r;i++)
  if(A[i]<=A[r])
   swap(A[++j],A[i]);
 if(j-1>l)
  qsort(l,j-1);
 if(j+1<r)
  qsort(j+1,r);
 }
void show()
 {
 for(int i=1;i<=n;i++)
  fprintf(g,"%ld ",A[i]);
 }
int main()
 {
 read();
 qsort(1,n);
 show();
 return 0;
 }