Pagini recente » Cod sursa (job #1428522) | Clasament 7_martie_simulare_oji_2024_clasa_10 | Cod sursa (job #638026) | Cod sursa (job #2709873) | Cod sursa (job #1117381)
#include<fstream>
using namespace std;
#define N 500005
ifstream f("algsort.in");
ofstream g("algsort.out");
void swap(int* A, int i, int j)
{
int aux;
aux = A[i];
A[i] = A[j];
A[j] = aux;
}
int partition(int *A, int pivot, int lt, int rt)
{
swap(A, lt, pivot);
int pos = lt + 1;
for(int i = lt + 1; i <= rt; i++)
{
if (A[i] < A[lt])
{
swap(A, pos, i);
pos++;
}
}
swap(A, lt, pos - 1);
return pos - 1;
}
void qsort(int *A, int lt, int rt)
{
if (lt < rt)
{
int randomPos = lt + rand() % (rt - lt + 1);
int pivotPosition = partition(A, randomPos, lt, rt);
qsort(A, lt, pivotPosition - 1);
qsort(A, pivotPosition + 1, rt);
}
}
int n, A[N];
int main()
{
f >> n;
for(int i = 1; i <= n; i++)
{
f >> A[i];
}
qsort(A, 1, n);
for(int i = 1; i <= n; i++)
{
g << A[i] << " ";
}
return 0;
}