Pagini recente » Cod sursa (job #3275777) | Cod sursa (job #3237063) | Cod sursa (job #3164610) | Cod sursa (job #3263865) | Cod sursa (job #3263097)
#include <bits/stdc++.h>
using namespace std;
const string nume="algsort";
ifstream f(nume+".in");
ofstream g(nume+".out");
int part(vector<int>& a, int l, int r)
{
int pivot = a[r];
int i = l - 1;
for (int j = l; j < r; j++)
if (a[j] <= pivot)
{
i++;
swap(a[i], a[j]);
}
swap(a[i + 1], a[r]);
return i + 1;
}
void quicksort(vector<int>& a, int l, int r)
{
if (l < r)
{
int p = part(a, l, r);
quicksort(a, l, p - 1);
quicksort(a, p + 1, r);
}
}
int main()
{
int n;
f>>n;
vector<int> a(n);
for (int i = 0; i < n; i++)
f>>a[i];
quicksort(a, 0, n - 1);
for (int i = 0; i < n;i++)
g<<a[i]<<' ';
return 0;
}