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