Cod sursa(job #2082978)

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

int poz(int p,int u)
{int piv,aux,k, index;
piv=x[p];
index=rand() % (u-p+1) + p;
x[p]=x[index];
x[index]=piv;
 piv=x[p];

 while (p<u)
    { if (x[p]>x[u]) {aux=x[p];
                           x[p]=x[u];
                           x[u]=aux;
                                 }
       if (x[p]==piv)
              u--;
        else p++;
    }
 k=p;
 return k;
}

void quick(int p,int u)
{int k;
 if (p<u) {k=poz(p,u);
                quick(p,k-1);
                quick(k+1,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]<<' ';

}// Burcea Bogdan , iti multumesc pt sfatul cu random :)