Cod sursa(job #645437)

Utilizator Anna_cristinaButucea Ana Cristina Anna_cristina Data 9 decembrie 2011 17:06:47
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>

using namespace std;
unsigned int s[500000],N;

unsigned int part(unsigned int i,unsigned int j)
{unsigned int pivot=s[(i+j)/2];
 unsigned int a=i,b=j,aux;
 while(a<b)
  {while(s[a]<pivot && a<N)   a++;
   while(pivot<s[b] && b>1)   b--;
   if(a<=b)
     {aux=s[a];
      s[a]=s[b];
      s[b]=aux;
      a++;
      b--;
      }
   }
 return a;
}

void quicks(unsigned int i,unsigned int j)
{if(i<j) 
   {unsigned int p=part(i,j);
    if(i<p-1)  quicks(i,p-1);
    if(p<j)    quicks(p,j);
    }
 }

int main()
{ifstream f("algsort.in");
 f>>N;
 for(unsigned int i=1;i<=N;i++)
   f>>s[i];
 f.close();  
 quicks(1,N);
 ofstream g("algsort.out");
 for(unsigned int i=1;i<=N;i++)
   g<<s[i]<<" ";
 g.close();  
 return 0;
 }