Pagini recente » Cod sursa (job #1517759) | Cod sursa (job #222077) | Cod sursa (job #2901437) | Cod sursa (job #2839093) | Cod sursa (job #1052249)
#include <fstream>
#define Nmax 500100
using namespace std;
int N, V[Nmax];
void QuickSort(int A, int B) {
int Left, Right, Pivot;
Left = A;
Right = B;
Pivot = V[(Left + Right) >> 1];
while(Left <= Right) {
while(V[Left] < Pivot)
++Left;
while(Pivot < V[Right])
--Right;
if(Left <= Right) {
swap(V[Left], V[Right]);
++Left; --Right;
}
}
if(A < Right)
QuickSort(A, Pivot - 1);
if(Left < B)
QuickSort(Pivot + 1, B);
}
void Read() {
ifstream in("algsort.in");
in >> N;
for(int i = 1; i <= N; i++)
in >> V[i];
in.close();
}
void Write() {
ofstream out("algsort.out");
for(int i = 1; i <= N; i++)
out << V[i] << ' ';
out << '\n';
out.close();
}
int main() {
Read();
QuickSort(1, N);
Write();
return 0;
}