Pagini recente » Cod sursa (job #488276) | Cod sursa (job #2595595) | Cod sursa (job #2882920) | Cod sursa (job #1691217) | Cod sursa (job #801054)
Cod sursa(job #801054)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
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() {
srand(time(NULL));
fstream f1, f2;
f1.open("algsort.in", ios::in);
f2.open("algsort.out", ios::out);
f1 >> N;
for(int i=1; i<=N; i++) {
f1 >> A[i];
}
quickSort(1, N);
for(int i=1; i<=N; i++) {
f2 << A[i] << ' ';
}
f2 << '\n';
f1.close(); f2.close();
return 0;
}