Cześć, potrzebuje zaimplementować QuickSorta. Oglądałem film z pewnego kanału odnośnie jak działa i była tam też również implementacja, którą po całkowitym zrozumieniu postanowiłem przekopiować.
void quick_Sort(int *tab, int left, int right)
{
int border = right-1;
int pivot = tab[right];
int i = left;
if(left>=right)
{
return;
}
while(i < right)
{
if(tab[i] < pivot)
{
border++;
if(border != i)
{
swap(tab, border, i);
}
}
i++;
}
border++;
if(border != right)
{
swap(tab, border, right);
}
quick_Sort(tab,left,border-1);
quick_Sort(tab,border+1,right);
for(i=0; i<5; i++)
{
printf("%d ",tab[i]);
}
}
Niestety program wywala na końcu funkcji, gdy ma zostać wywołana rekurencja.
Wie ktoś o co chodzi?