Pagini recente » Cod sursa (job #26045) | Cod sursa (job #1098936) | Cod sursa (job #1684615) | Cod sursa (job #855930) | Cod sursa (job #2435206)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[500005];
void QuickSort(int st, int dr);
int main()
{
int n;
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i];
QuickSort(1, n);
for (int i = 1; i <= n; i++)
fout << a[i] << ' ';
fin.close();
fout.close();
}
void QuickSort(int st, int dr)
{
int i = st, j = dr;
int pivot = a[(st + dr) / 2];
while (i <= j)
{
while (a[i] < pivot) i++;
while (a[j] > pivot) j--;
if (i <= j)
{
int aux = a[i];
a[i] = a[j];
a[j] = aux;
i++;
j--;
}
}
if (st < j) QuickSort(st, j);
if (i < dr) QuickSort(i, dr);
}