Cześć,
Nie wiem dlaczego ta funkcja Hoare'a nie chce się zakończyć prawidłowo i zadziałać. Ktoś by mógł znaleźć błąd i wskazać w którym jest miejscu?
int hoare(int tab[], int lewy, int prawy, int k)
{
if (prawy == 0 && k == 0) {
return tab[0];
}
int x, y, r;
x = lewy;
y = prawy;
r = tab[0];
do {
while (tab[x] < r) {
x++;
}
while (r < tab[y]) {
y--;
}
if (x <= y) {
x++;
y--;
}
} while (x <= y);
if (x < k) {
return hoare(tab, 0, x, k);
}
else {
return hoare(tab, x, y, k);
}
}