Pagini recente » Cod sursa (job #2779446) | Cod sursa (job #2126570) | Cod sursa (job #2801605) | Cod sursa (job #301778) | Cod sursa (job #2210702)
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int partitionn(int l, int r){
int pivot = rand() % (r - l + 1) + l;
swap(v[r], v[pivot]);
int i = l;
int j = l;
int x = v[r];
while(j != r){
if(v[j] >= x){
j++;
}else{
swap(v[j], v[i]);
i++;
j++;
}
}
swap(v[i], v[r]);
return i;
}
void quick_sort(int l, int r){
if(l == r || l > r){
return;
}
int q = partitionn(l, r);
quick_sort(l, q - 1);
quick_sort(q + 1, r);
}
void q_sort(){
quick_sort(0, v.size() - 1);
}
int main()
{
srand(time(NULL));
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, x;
f >> n;
for(int i = 0; i < n; ++i){
f >> x;
v.push_back(x);
}
q_sort();
for(int i = 0; i < n; ++i){
g << v[i] << ' ';
}
return 0;
}