Pagini recente » Cod sursa (job #2055597) | Cod sursa (job #2326254) | Cod sursa (job #1987552) | Cod sursa (job #893665) | Cod sursa (job #2637241)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
int v[500001];
int Partition(int arr[], int left, int right)
{
int pivot = arr[(left + right) / 2];
int i = left - 1;
int j = right + 1;
while (true)
{
do
{
i++;
}while (arr[i] < pivot);
do
{
j--;
}while (arr[j] > pivot);
if (i >= j)
return j;
swap(arr[i], arr[j]);
}
}
void QuickSort(int arr[], int left, int right)
{
if (left < right)
{
int pi = Partition(arr, left, right);
QuickSort(arr, left, pi);
QuickSort(arr, pi + 1, right);
}
}
int main()
{
f >> n;
for (int i=1; i<=n; i++)
f >> v[i];
QuickSort(v, 1, n);
for (int i=1; i<=n; i++)
g << v[i] << " ";
return 0;
}