Hej
Ćwiczę sobie algorytmy, niestety z jakiegoś powodu nic mi nie chce działać
Próbowałam napisać przeszukiwanie binarne, ale zamiast indeksu liczby szukanej (szukam liczby 2 pod indeksem 6) zwraca liczbę 2 :(
#include <iostream>
int szukaj(int * tablica, int poczatek, int koniec, int x) {
if (poczatek <= koniec) {
int srodek = poczatek + koniec / 2;
if (tablica[srodek] == x) {
return x;
}
else if (tablica[srodek] > x) {
return szukaj(tablica, poczatek, srodek - 1, x);
}
else {
return szukaj(tablica, srodek + 1, koniec, x);
}
}
else {
return -1;
}
}
int main()
{
int tab[10] = {1, 9, 8, 0, -5, 2, 6, 1, 7, 13};
std::cout << szukaj(tab, 0, 10, 2) << std::endl;
return 0;
}
Czy pomoże ktoś znaleźć błąd?