int partaion(int arr[], int begin, int end)
{
int small = begin - 1;
for (int i = begin; i < end; i++)
{
if (arr[i] < arr[end])
{
small++;
if (small != i)
{
swap(arr[small], arr[i]);
}
}
}
++small;
swap(arr[small], arr[end]);
return small;
}
void quick_sort(int arr[], int begin, int end)
{
if (begin == end)
return;
int index = partaion(arr, begin, end);
if (index > begin)
{
quick_sort(arr, begin, index-1);
}
if (index < end)
{
quick_sort(arr, index+1, end);
}
}