Cod sursa(job #2369194)
| Utilizator | Data | 5 martie 2019 21:39:05 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int a[500010], n;
void qsort(int st, int dr)
{
int i = st, j = dr, m = (i + j) / 2;
int piv = a[m];
while(i <= j)
{
while(a[i] < piv) i++;
while(piv < a[j]) j--;
if(i <= j)
{
swap(a[i], a[j]);
i++;
j--;
}
}
if(i < dr) qsort(i, dr);
if(st < j) qsort(st, j);
}
int main()
{
in >> n;
for(int i = 1;i <= n;i++)
in >> a[i];
qsort(1, n);
for(int i = 1;i <= n;i++)
out << a[i] << " ";
return 0;
}
