Nie wiem jaka tam jest dokładnie implementacja wyszukiwania, ale tam zwracany jest index 1 napotkanej liczby więc trochę było by trzeba zmodyfikować ten algorytm. No i tam tablica nie musi być uporządkowana. Trzeba by sprawdzić.
nie trzeba robić pętli, wystarczy zrobić tak (w języku c++): int binarySearch(int *arr, int l, int r, int tofind) { if (l > r) return -1; int mid = floor((l+r)/2); if (tofind == *(arr+mid)) return mid; else if (tofind < *(arr+mid)) return binarySearch(arr, l, mid-1, tofind); else if (tofind > *(arr+mid)) return binarySearch(arr, mid+1, r, tofind); }
Nie było tego w materiałach które przerabiałem, ale też się nad tym zastanawiałem, co jeżeli chciał bym np. index 1 wartości z powtarzających się. I tak jak sobie myślę, to w sumie lekka modyfikacja tej funkcji by wystarczyła, bo po znalezieniu tej właściwej liczby wystarczy dekrementować index, jeżeli po lewej stronie od wyszukanej stoi ta sama liczba i tak samo z inkrementacją i w ten sposób jesteś w stanie zrobić np. Index początku i końca. Czyli lekka modyfikacja funkcji.
Lubie ten kanał. Fajnie, super i co najważniejsze rzetelnie wytłumaczone. Licze na więcej
Dziękuję!
ja mam pytanie. w linii czwartej przed pętlą wyliczasz średnią. czy to jest konieczne, czy można wyliczyć tylko średnią w środku pętli?
było super!!! wszystko jasne bardzo
Czy to jest odpowiednik funkcji IndexOf w C# ?
Nie wiem jaka tam jest dokładnie implementacja wyszukiwania, ale tam zwracany jest index 1 napotkanej liczby więc trochę było by trzeba zmodyfikować ten algorytm. No i tam tablica nie musi być uporządkowana. Trzeba by sprawdzić.
nie trzeba robić pętli, wystarczy zrobić tak (w języku c++):
int binarySearch(int *arr, int l, int r, int tofind) {
if (l > r) return -1;
int mid = floor((l+r)/2);
if (tofind == *(arr+mid)) return mid;
else if (tofind < *(arr+mid)) return binarySearch(arr, l, mid-1, tofind);
else if (tofind > *(arr+mid)) return binarySearch(arr, mid+1, r, tofind);
}
Co jeśli wartości będą się powtarzać i chciałbym znać indeks każdej z nich?
Nie było tego w materiałach które przerabiałem, ale też się nad tym zastanawiałem, co jeżeli chciał bym np. index 1 wartości z powtarzających się. I tak jak sobie myślę, to w sumie lekka modyfikacja tej funkcji by wystarczyła, bo po znalezieniu tej właściwej liczby wystarczy dekrementować index, jeżeli po lewej stronie od wyszukanej stoi ta sama liczba i tak samo z inkrementacją i w ten sposób jesteś w stanie zrobić np. Index początku i końca. Czyli lekka modyfikacja funkcji.
@@KoW biorąc pod uwagę że tablice są posortowane, można wywoływać funkcje tak długo jak wynik różny od -1 oczywiście zawsze z nową parą wskaźników.
spoko
Nie za dużo tych filmików?
Za mało 😀
@@xxm4t1xx89 +1
Więcej z algorytmów by było miłe. Bardzo ciekawe to jest
heja