Rekurencja, wyszukiwanie binarne

0

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);
		
	}  
0

Twój algorytm operuje na adresie podtablicy i liczbie elementów w tej tablicy (N). Zmień go by przyjmował adres tablicy oryginalnej, indeks początku i końca (ostatniego elementu albo elementu za ostatnim elementem, uważaj jednak bo w zależności którą opcję wybierzesz zmieni to warunki)

1 użytkowników online, w tym zalogowanych: 0, gości: 1