Cod sursa(job #2083245)

Utilizator karenalo13Diaconu Iulian Andrei karenalo13 Data 7 decembrie 2017 13:38:03
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int x[500002],n,i;

 int part(int p, int u)
 {  int index;
 index=rand() % (u-p+1) + p;
 swap(x[u], x[index]);

    int piv = x[u];

while(1){
        while(x[p] < piv) p++;
        while(x[u] > piv) u--;
if(p >= u)
            return p ;
            swap(x[p++], x[u--]);
 }
    }
void quick(int p,int u)
{int k;
 if (p<u) {k=part(p,u);
                quick(p,k-1);
                quick(k,u);}
}


int main()
{srand(time(0));
f>>n;
for(int i=1;i<=n;i++)
             {
             f>>x[i];
             }
quick(1,n);
for(i=1;i<=n;i++)
  g<<x[i]<<' ';

}