Pagini recente » Cod sursa (job #2115279) | Cod sursa (job #859563) | Cod sursa (job #2477472) | Cod sursa (job #1068314) | Cod sursa (job #3261439)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[500005], n;
void Citire()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i];
}
void Afisare()
{
for(int i = 1; i <= n; i++)
fout << a[i] << " ";
}
int Pivot(int st, int dr)
{
int i, k, pivot;
swap(a[st], a[(st + dr) / 2]);
pivot = a[st];
k = st;
for(i = st + 1; i <= dr; i++)
if(a[i] <= pivot)
{
k++;
swap(a[k], a[i]);
}
swap(a[st], a[k]);
return k;
}
void Quicksort(int st, int dr)
{
int p = Pivot(st, dr);
if(st < p - 1) Quicksort(st, p - 1);
if(p + 1 < dr) Quicksort(p + 1, dr);
}
int main()
{
Citire();
Quicksort(1, n);
Afisare();
return 0;
}