Pagini recente » Cod sursa (job #2357437) | Cod sursa (job #2956732) | Cod sursa (job #825181) | Cod sursa (job #2981909) | Cod sursa (job #1331871)
#include <fstream>
#define Nmax 500100
using namespace std;
int N, V[Nmax];
void QuickSort(int A, int B) {
int left = A;
int right = B;
int middleValue = V[(left + right) >> 1];
while(left < right) {
while(V[left] < middleValue)
left++;
while(V[right] > middleValue)
right--;
if(left <= right) {
swap(V[left], V[right]);
++left;
--right;
}
}
if(A < right)
QuickSort(A, right);
if(left < B)
QuickSort(left, 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;
}