Pagini recente » Cod sursa (job #2523164) | Cod sursa (job #3184513) | Cod sursa (job #169205) | Cod sursa (job #2633472) | Cod sursa (job #1338941)
#include <fstream>
#define Nmax 500100
using namespace std;
int N, V[Nmax];
void Quicksort(int left, int right) {
int midL = left;
int midR = right;
int pivotValue = V[(left + right) >> 1];
for(int i = left; i < midR; i++)
if(V[i] < pivotValue)
swap(V[midL++], V[i]);
else
if(V[i] > pivotValue)
swap(V[i--], V[--midR]);
if(midL - left > 1)
Quicksort(left, midL);
if(right - midR > 1)
Quicksort(midR, right);
}
void Read() {
ifstream in("algsort.in");
in >> N;
for(int i = 0; i < N; i++)
in >> V[i];
in.close();
}
void Write() {
ofstream out("algsort.out");
for(int i = 0; i < N; i++)
out << V[i] << ' ';
out << '\n';
out.close();
}
int main() {
Read();
Quicksort(0, N);
Write();
return 0;
}