Pagini recente » Cod sursa (job #2881564) | Cod sursa (job #2611362) | Cod sursa (job #2630859) | Cod sursa (job #3030982) | Cod sursa (job #2505547)
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int VAL=500005;
int N, M, i, j, v[VAL];
int be, en, pivot;
int Partition(int be, int en)
{
int pivot=be+(rand()%(en-be+1));
int i=be, P=v[pivot];
swap(v[pivot], v[en]);
for (int j=be; j<=en; j++)
{
if (v[j]<=P)
{
swap(v[i], v[j]);
i++;
}
}
return i-1;
}
void Quicksort(int be, int en)
{
if (be>=en)
return;
int pos=Partition(be, en);
Quicksort(be, pos-1);
Quicksort(pos+1, en);
}
int main()
{
fin >> N;
for (i=1; i<=N; i++)
fin >> v[i];
Quicksort(1, N);
for (i=1; i<=N; i++)
fout << v[i] << " ";
fin.close();
fout.close();
return 0;
}