#include <algorithm>
void QuickSort(unsigned *arr, int start, int end)
{
if (start >= end)
return;
int i = start;
unsigned key = arr[i];
int j = end;
while (i < j)
{
while (i < j&&key <= arr[j])
{
j--;
}
if (i < j)
arr[i++] = arr[j];
while (i<j&&key>=arr[i])
{
i++;
}
if (i < j)
arr[j--] = arr[i];
}
arr[i] = key;
QuickSort(arr, start, i - 1);
QuickSort(arr, i + 1, end);
}
void sort(unsigned *a, int n) {
QuickSort(a,0,n-1);
}