Pagini recente » Cod sursa (job #439447) | Cod sursa (job #643677) | Cod sursa (job #1110024) | Cod sursa (job #630125) | Cod sursa (job #1745660)
//#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n;
int numbers[500000];
void quicksort(int l, int r)
{
int pivot = numbers[(l + r) / 2];
int left = l, right = r;
while (l <= r)
{
while (numbers[l] < pivot)
l++;
while (numbers[r] >= pivot)
r--;
if (l < r)
{
int temp = numbers[l];
numbers[l] = numbers[r];
numbers[r] = temp;
l++;
r--;
}
}
if (left < r)
quicksort(left, r);
if (right < l)
quicksort(right, l);
}
int main()
{
in >> n;
for (int i = 0; i <= n - 1; i++)
in >> numbers[i];
/*bool ok = 1;
while (ok)
{
ok = 0;
for (int i = 0; i <= n - 2; i++)
if (numbers[i] > numbers[i + 1])
{
int temp = numbers[i];
numbers[i] = numbers[i + 1];
numbers[i + 1] = temp;
ok = 1;
}
}*/
quicksort(0, n - 1);
for (int i = 0; i <= n - 1; i++)
{
out << numbers[i] << " ";
}
return 0;
}