Pagini recente » Cod sursa (job #1677449) | Cod sursa (job #2368520) | Cod sursa (job #2348657) | Cod sursa (job #1365048) | Cod sursa (job #2673558)
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500005];
int choosepivot(int st, int dr)
{
int sizeinterval=dr-st+1;
return rand()%sizeinterval+st;
}
void quicksort(int v[], int st, int dr)
{
if(st>=dr)
{
return;
}
int pivot=choosepivot(st,dr);
int poz=st;
swap(v[pivot], v[dr]);
for(int i=st;i<dr;i++)
{
if(v[i]<=v[dr])
{
swap(v[i],v[poz]);
poz++;
}
}
swap(v[poz],v[dr]);
quicksort(v,st,poz-1);
quicksort(v,poz+1,dr);
}
int main()
{
srand(time(0));
int n;
in>>n;
for(int i=0;i<n;i++)
{
in>>v[i];
}
quicksort(v,0,n-1);
for(int i=0;i<n;i++)
{
out<<v[i]<<' ';
}
return 0;
}