Cod sursa(job #972797)

Utilizator tntraduRadu Cebotari tntradu Data 12 iulie 2013 18:09:02
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
#include<fstream>
#include<iostream>
using namespace std;

    long quicksort(long v[100], long stanga, long dreapta)
    {
       long i, j, mijloc, aux;         // variabilele
       i=stanga;                       //  initializarea
       j=dreapta;                    //   indicilor
       mijloc=v[(stanga+dreapta)/2];  // initializarea variabilei - pivot
      while(i<=j)
      {
       while(v[i]<mijloc)  // apropierea i-ului de mijloc
          i++;
       while(v[j]>mijloc)   // apropierea j-ului de mijloc
          j--;
        if(i<=j)   //conditia efectuarii operatiei de interschimbare
        {
           aux=v[i];
           v[i]=v[j];   // operatia de interschimbare
           v[j]=aux;
           i++;
           j--;
         }
      }
     if(stanga<j)                    //recursivitatea
       quicksort(v, stanga, j);   // in partea stanga
     if(i<dreapta)
       quicksort(v, i, dreapta);  // in partea dreapta

    }
int main()
{

    ifstream in("algsort.in");
    ofstream out("algsort.out");
    long i,a[500005],n;
    in>>n;
    for(i=0;i<n;i++)
        in>>a[i];
    quicksort(a,0,n-1);
    for(i=0;i<n;i++)
        out<<a[i]<<" ";
    out.close();
    in.close();
    return 0;
}