Pagini recente » Cod sursa (job #2702811) | Cod sursa (job #1917046) | Cod sursa (job #2162576) | Cod sursa (job #2340651) | Cod sursa (job #2670257)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMax = 5e5;
int N, V[NMax + 5];
void Read()
{
fin >> N;
for(int i = 1; i <= N; i++) {
fin >> V[i];
}
}
int Partition(int left, int right)
{
int pivot = V[right], i = left;
for(int j = left; j < right; j++) {
if(V[j] < pivot)
swap(V[j], V[i++]);
}
swap(V[i], V[right]);
return i;
}
void Quicksort(int left, int right)
{
if(left >= right)
return;
int pivot = Partition(left, right);
Quicksort(left, pivot - 1);
Quicksort(pivot + 1, right);
}
void Print()
{
for(int i = 1; i <= N; i++) {
fout << V[i] << " ";
}
fout << '\n';
}
int main()
{
Read();
Quicksort(1, N);
Print();
return 0;
}