Pagini recente » Cod sursa (job #2973596) | Cod sursa (job #2670292) | Cod sursa (job #2761068) | Cod sursa (job #1157605) | Cod sursa (job #2083801)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int arr[500000], n;
void Read()
{
in>>n;
for (int i=1;i<=n;i++)
in>>arr[i];
}
int Partition (int arr[], int low, int high)
{
int pivot = arr[high];
int i = low - 1;
for (int j = low; j<= high-1;j++)
{
if (arr[j]<pivot)
{
i++;
swap(arr[i], arr[j]);
}
}
swap (arr[i+1], arr[high]);
return (i+1);
}
void QuickSort(int arr[], int low, int high)
{
if (low<high)
{
int pi = Partition(arr, low, high);
QuickSort(arr,low, pi-1);
QuickSort(arr, pi+1, high);
}
}
void Print()
{
for (int i=1;i<=n;i++)
out<<arr[i]<<" ";
}
int main()
{
Read();
QuickSort(arr,1,n);
Print();
return (0);
}