Pagini recente » Cod sursa (job #3147819) | Cod sursa (job #2886696) | Cod sursa (job #560402) | Cod sursa (job #310371) | Cod sursa (job #2301453)
#include<bits/stdc++.h>
using namespace std;
vector <int> v;
int part(int lf, int rg, int pivot){
swap(v[pivot], v[rg]);
pivot = rg;
int i = lf;
for(int j = lf;j < rg;j++){
if(v[j] <= v[pivot]){
swap(v[i], v[j]);
i++;
}
}
swap(v[i], v[pivot]);
return i;
}
void q_sort(int lf, int rg){
if(lf >= rg){
return;
}
int pivot = (lf + rg) / 2;
int new_pivot = part(lf, rg, pivot);
q_sort(lf, new_pivot - 1);
q_sort(new_pivot + 1, rg);
}
int main(){
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int n;
scanf("%d",&n);
for(int i = 0;i < n;i++){
int x;
scanf("%d",&x);
v.emplace_back(x);
}
q_sort(0, n - 1);
cerr << "TYAS";
for(int i = 0;i < n;i++){
printf("%d ",v[i]);
}
return 0;
}