Pagini recente » Cod sursa (job #2442437) | Cod sursa (job #2097219) | Cod sursa (job #2187305) | Cod sursa (job #2770172) | Cod sursa (job #1080329)
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <utility>
void quick(int *Arr, int left, int right) {
if(left >= right) {
return;
}
int l = left, r = right;
int m = Arr[left + rand() % (right - left)];
while(l < r) {
while(Arr[l] < m) {
l++;
}
while(Arr[r] > m) {
r--;
}
if(l <= r) {
std::swap(Arr[l], Arr[r]);
l++;
r--;
}
}
quick(Arr, left, r);
quick(Arr, l, right);
}
int main() {
std::ifstream in("algsort.in");
std::ofstream out("algsort.out");
srand(time(NULL));
int nV, *Arr;
in >> nV;
Arr = new int[nV];
for(int i = 0; i < nV; i++) {
in >> Arr[i];
}
quick(Arr, 0, nV - 1);
for(int i = 0; i < nV; i++) {
out << Arr[i] << ' ';
}
return 0;
}