Pagini recente » Cod sursa (job #1895609) | Cod sursa (job #1481357) | Cod sursa (job #1216801) | Cod sursa (job #2346102) | Cod sursa (job #2337610)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, a[500005];
void Read();
void QuickSort(int st, int dr);
void Write();
int main()
{
Read();
QuickSort(1, n);
Write();
fin.close();
fout.close();
}
void Read()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i];
}
void QuickSort(int st, int dr)
{
int pivot = a[(st + dr) / 2];
int i = st, j = dr;
do {
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--;
}
} while (i <= j);
if (st < j) QuickSort(st, j);
if (i < dr) QuickSort(i, dr);
}
void Write()
{
for (int i = 1; i <= n; i++)
fout << a[i] << ' ';
}