Witam, mam do napisania program który łączy rekurencje i wyszukiwanie binarne. Generalnie ma znaleźć numer tablicy odpowiadający podanej przez użytkownika wartości w tablicy. Wiem i widziałem że można to zrobić prościej bazując na zakresie przeszukiwania, czyli lewo, prawo środek, jednak jako że jest to zadanie z rekurencji/wskaźników to domyślam się że takiej formy ode mnie wymagano. Problem polega na przeszukiwaniu "prawej" połówki, ponieważ zwracając N/2 zwracam numer tablicy odpowiadający "nowej" tablicy, czyli uciętej o połowe. Długo nad tym myślałem i niestety nie moge znaleźć rozwiązania jak uzyskać z indeks orginalnej tablicy. Poniżej zamieszczam funkcje
double ZnajdzElement(double*element, double*Tablica, int N)
{
if (N == 0)
return -1;
if (Tablica[N / 2] == *element)
return N / 2;
if (Tablica[N / 2] < *element)
{
return ZnajdzElement(element, &Tablica[N / 2 + 1], N / 2);
}
if (Tablica[N / 2]>*element)
return ZnajdzElement(element, Tablica, N / 2);
}