Pagini recente » Cod sursa (job #858268) | Cod sursa (job #2050621) | Cod sursa (job #319329) | Cod sursa (job #867210) | Cod sursa (job #1214115)
#include <iostream>
#include <fstream>
using namespace std;
void swap (int &a, int &b)
{
int aux = a;
a = b;
b = aux;
}
int partition (int v[], int st, int dr)
{
int i = 0, j = 1;
while (st < dr)
{
if (v[st] > v[dr])
{
swap(v[st], v[dr]);
swap(i,j);
}
st += i;
dr -= j;
}
return dr;
}
void qsort (int *v, int st, int dr)
{
if (st < dr)
{
int p = partition(v, st, dr);
qsort(v, st, p - 1);
qsort(v, p + 1, dr);
}
}
int main()
{
ifstream in("algsort.in");
int n, *v, i;
in >> n;
v = new int[n];
for (i = 0; i < n; i++)
in >> v[i];
in.close();
qsort(v, 0, n - 1);
ofstream out("algsort.out");
for (i = 0; i < n; i++)
out << v[i] << " ";
return 0;
}