Pagini recente » Cod sursa (job #377282) | Cod sursa (job #2973321) | Cod sursa (job #1632620) | Cod sursa (job #1918806) | Cod sursa (job #1502976)
#include <fstream>
using namespace std;
int v[500001];
int partition(int lo, int hi) {
int i, j, pivot;
i = rand() % (hi - lo + 1) + lo;
swap(v[i], v[lo]);
pivot = v[lo];
i = lo;
j = lo + 1;
while (j <= hi) {
if (v[j] <= pivot) {
i++;
swap(v[i], v[j]);
}
j++;
}
swap(v[lo], v[i]);
return i;
}
void quickSort(int lo, int hi) {
if (lo < hi) {
int k = partition(lo, hi);
quickSort(lo, k-1);
quickSort(k+1, hi);
}
}
int main() {
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
for (int i = 0; i < n; i++) {
fin >> v[i];
}
quickSort(0, n-1);
for (int i = 0; i < n; i++) {
fout << v[i] << " ";
}
fout << "\n";
return 0;
}