Pagini recente » Cod sursa (job #2292693) | Cod sursa (job #1206150) | Cod sursa (job #2071069) | Cod sursa (job #625217) | Cod sursa (job #2482053)
#include <fstream>
#include <algorithm>
#define DIM 500001
using namespace std;
int N;
int array[DIM];
int partition(int left, int right) {
int pivot = array[right];
int i = left;
for (int j = left; j < right; ++ j) {
if (array[j] <= pivot) {
swap(array[i], array[j]);
++ i;
}
}
swap(array[i], array[right]);
return i;
}
void quick_sort(int left, int right) {
if (left >= right) {
return;
}
int random = left + rand() % (right - left + 1);
swap(array[random], array[right]);
int pos = partition(left, right);
quick_sort(left, pos - 1);
quick_sort(pos + 1, right);
}
int main() {
FILE *fin = fopen("algsort.in", "r");
FILE *fout = fopen("algsort.out", "w");
fscanf(fin, "%d", &N);
for (int i = 1; i <= N; i ++) {
fscanf(fin, "%d", &array[i]);
}
// srand(time(NULL));
// quick_sort(1, N);
sort(array + 1, array + N + 1);
for (int i = 1; i <= N; i ++) {
fprintf(fout, "%d ", array[i]);
}
fscanf(fout, "\n");
fclose(fin);
fclose(fout);
return 0;
}