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