void QuickSort(int *arr, int begin, int end)
{
if (begin >= end)
{
return;
}
int left = begin;
int right = end;
int key = begin;
while (begin < end)
{
while (end>begin && arr[end] >= arr[key])
{
--end;
}
while (end>begin && arr[begin] <= arr[key])
{
++begin;
}
swap(arr[begin], arr[end]);
}
swap(arr[end], arr[key]);
key = end;
QuickSort(arr, left, key - 1);
QuickSort(arr, key + 1, right);
}