Посмотрите на этот код
void quick_sort(int arr[],int start,int end)
{
if(start<end)
{
int pindex=partition(arr,start,end);
quick_sort(arr,start,pindex);
quick_sort(arr,pindex,end);
}
}
Если pindex
равно start
, то quick_sort(arr,pindex,end);
вызовет функцию быстрой сортировки с теми же параметрами, определяемыми при переполнении стека (та да !!).
Смысл быстрой сортировки в том, что элемент pivot находится в правильном положении, поэтому вы рекурсивно сортируете все, кроме элемента pivot.
Что-то вроде
int pindex = partition(arr, start, end);
quick_sort(arr, start, pindex);
quick_sort(arr, pindex + 1, end);
Не проверено .