Cod sursa(job #3254144)

Utilizator cameleonGeorgescu Dan cameleon Data 6 noiembrie 2024 11:56:12
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <time.h>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int v[1000002],n, k;

int  quicksort(int st, int dr)
{
    if(st<dr) ///secventa are cel putin doua elemente
    {
       int i=st, j=dr, mod=0;
       int poz=rand()%(dr-st+1)+st;
       swap(v[st], v[poz]);
        while(i<j)
        {
            if(v[i] > v[j])
            {
                swap(v[i],v[j]);  ///interschimb valorile
                mod=1-mod;        ///schimb modul de lucru
            }
            i=i+mod;
            j=j-(1-mod);
        }
        ///am ajuns in situatia i==j si pivotul este plasat aici
        quicksort(st,i-1);
        quicksort(i+1,dr);
    }
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>v[i];

    srand(time(NULL));

    quicksort(1,n);
    for(int i=1;i<=n;i++)
        cout<<v[i]<<" ";

    return 0;
}