Cod sursa(job #396857)

Utilizator arnold23Arnold Tempfli arnold23 Data 15 februarie 2010 23:12:58
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#include <vector>

using namespace std;

vector<long> a;
long n,i;

int oszt(long b, long j, long &k)
{
 long t;   
 t=a[b];
 k=b;
 while(b<j)
 {
   while(a[j]>=t) --j;
   if(b<j){
   a[k]=a[j];
   k=j;
   }
   while(a[b]<=t) ++b;
   if(b<j){
   a[k]=a[b];
   k=b;    
   }      
 }
 a[k]=t;
 return 0;   
}

int quick(long bal, long jobb)
{
 long koz;   
 if(bal<jobb)
 {
  oszt(bal,jobb,koz);
  quick(bal,koz-1);
  quick(koz+1,jobb);
 }   
 return 0;
}

int main()
{
 freopen("algsort.in","r",stdin); 
 freopen("algsort.out","w",stdout);
 
 long x;
 scanf("%ld\n",&n);
 for(i=1;i<=n;++i)
 {
  scanf("%ld ",&x);
  a.push_back(x);
 }  
 
 quick(1,n);
    
 for(i=1;i<=n;++i)
 {
  printf("%ld ",a[i]);
 }       
    
 return 0;    
}