Pagini recente » Cod sursa (job #660076) | Cod sursa (job #1502791) | Cod sursa (job #3241364) | Cod sursa (job #272117) | Cod sursa (job #801050)
Cod sursa(job #801050)
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
#define maxn 500010
int N;
int A[maxn];
void quickSort(int left, int right) {
if(left >= right) return;
int mid = (left + right) / 2;
swap(A[mid], A[right]);
int pos = left;
for(int i=left; i<right; i++) {
if(A[i] < A[right]) {
swap(A[pos], A[i]);
pos ++;
}
}
swap(A[pos], A[right]);
quickSort(left, pos - 1);
quickSort(pos + 1, right);
}
int main() {
FILE * f1 = fopen("algsort.in", "r"), * f2 = fopen("algsort.out", "w");
int i, j, p, q;
fscanf(f1, "%d\n", &N);
for(i=1; i<=N; i++) {
fscanf(f1, "%d", &A[i]);
}
quickSort(1, N);
for(i=1; i<=N; i++) {
fprintf(f2, "%d ", A[i]);
}
fprintf(f2, "\n");
fclose(f1); fclose(f2);
return 0;
}