Pagini recente » Cod sursa (job #796226) | Cod sursa (job #681783) | Cod sursa (job #1782423) | Diferente pentru utilizator/dascalu intre reviziile 3 si 1 | Cod sursa (job #2901353)
#include <bits/stdc++.h>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n, v[500001];
int partition (int v[], int st, int dr){
int pivot = v[dr];
int i = (st - 1);
for (int j = st; j < dr; j++){
if (v[j] < pivot){
i++;
swap(v[i], v[j]);
}
}
swap(v[i + 1], v[dr]);
return (i + 1);
}
void qSort(int v[], int s, int d){
if(s < d){
int p = partition(v, s, d);
qSort(v, s, p-1);
qSort(v, p + 1, d);
}
}
int main(){
in >> n;
for(int i = 0; i < n; ++i)
in >> v[i];
qSort(v, 0, n - 1);
for(int i = 0; i < n; ++i)
out << v[i] << ' ';
in.close();
out.close();
return 0;
}