Pagini recente » Cod sursa (job #1970937) | Cod sursa (job #2983861) | Cod sursa (job #2779452) | Cod sursa (job #2627538) | Cod sursa (job #2210701)
#include <bits/stdc++.h>
using namespace std;
int partitionn(vector<int> &v, 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(vector<int> &v, int l, int r){
if(l == r || l > r){
return;
}
int q = partitionn(v, l, r);
quick_sort(v, l, q - 1);
quick_sort(v, q + 1, r);
}
void q_sort(vector<int> &v){
quick_sort(v, 0, v.size() - 1);
}
int main()
{
std::ios_base::sync_with_stdio(false);
srand(time(NULL));
vector<int> v;
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(v);
for(int i = 0; i < n; ++i){
g << v[i] << ' ';
}
return 0;
}