Pagini recente » Cod sursa (job #1147308) | Cod sursa (job #2253748) | Cod sursa (job #3193562) | Cod sursa (job #1579164) | Cod sursa (job #2301014)
#include<bits/stdc++.h>
using namespace std;
void q_sort(vector <int> &v, int lf, int rg){
if(lf >= rg){
return;
}
int pivot = (lf + rg) / 2;
int i = lf;
int j = rg;
while(i <= j){
while(i <= j && v[i] <= v[pivot]){
i++;
}
while(i <= j && v[pivot] <= v[j]){
j--;
}
if(i <= j){
swap(v[i], v[j]);
}else{
if(i > j){
i = j;
}
swap(v[pivot], v[i]);
break;
}
}
q_sort(v, lf, i - 1);
q_sort(v, i + 1, rg);
}
int main(){
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int n;
scanf("%d",&n);
vector <int> v(n);
for(int i = 0;i < n;i++){
scanf("%d",&v[i]);
}
q_sort(v, 0, n - 1);
for(int i = 0;i < n;i++){
printf("%d ",v[i]);
}
return 0;
}