Pagini recente » Cod sursa (job #1167297) | Cod sursa (job #234522) | Cod sursa (job #2773282) | Cod sursa (job #1847395) | Cod sursa (job #3263095)
#include <bits/stdc++.h>
using namespace std;
const string nume="algsort";
ifstream f(nume+".in");
ofstream g(nume+".out");
int part(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(int a[], int l, int r)
{
if (l < r)
{
int p = part(a, l, r);
if (p - l < r - p)
{
quicksort(a, l, p - 1);
l = p + 1;
}
else
{
quicksort(a, p + 1, r);
r = p - 1;
}
}
}
int main()
{
int n;
f>>n;
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;
}