Pagini recente » Cod sursa (job #2541703) | Cod sursa (job #565251) | Cod sursa (job #2627644) | Cod sursa (job #2918903) | Cod sursa (job #2142101)
#include<iostream>
#include<cstdlib>
#include<time.h>
#include<algorithm>
#include<vector>
using namespace std;
int partition(vector<int> &A, int start, int end) {
int p = A[start + rand() % (end - start + 1)];
int i = start, aux;
for (int j = start; j <= end; j++) {
if (A[j] <= p) {
aux = A[i]; A[i] = A[j]; A[j] = aux;
i++;
}
}
return i - 1;
}
void quick_sort(vector<int> &A, int start, int end) {
if (start < end) {
int p = partition(A, start, end);
quick_sort(A, start, p - 1);
quick_sort(A, p + 1, end);
}
}
int main() {
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
srand(time(0));
int N;
cin>>N;
vector<int> A(N);
for (int i = 0; i < N; i++) {
cin >> A[i];
}
quick_sort(A, 0, N - 1);
for (int i = 0; i < N; i++) {
cout << A[i] << ' ';
}
return 0;
}