Algorytm wyszukiwania binarnego

Program symuluje działanie algorytmy wyszukiwania binarnego (przez połowienie) liczby w zbiorze uporządkowanym. Algorytm realizuję strategię "dziel i zwyciężaj".

Algorytm wyszukiwania binarnego:

Algorytm wyszukiwania (binarnego) przez połowienie jest przykładem metody „dziel i zwyciężaj”.

Polega ona na dzieleniu przeszukiwanego zbioru na dwie części i zawężeniu przeszukiwania do jednej z tych części. Metoda podziału pomaga szybko znaleźć poszukiwany element, czyli zwyciężyć. W algorytmie wyszukiwania elementu w zbiorze uporządkowanym szukamy danego elementu i równocześnie jego położenia w tym zbiorze.


Przykładowa implementacje w Pythonie

  1. a = [11, 23, 35, 44, 51, 59, 62, 71, 88, 91]
  2. N = len(a)
  3.  
  4. def znajdz_dana(wartosc):
  5. poczatek = 0
  6. koniec = N - 1
  7. while poczatek <= koniec:
  8. srodek = (poczatek + koniec) // 2
  9. if a[srodek] == wartosc:
  10. return srodek
  11. else:
  12. if a[srodek] > wartosc:
  13. koniec = srodek - 1
  14. else:
  15. poczatek = srodek + 1
  16.  
  17. return -1
  18.  
  19. szukana = 44
  20. pozycja = znajdz_dana(szukana)
  21. if pozycja != -1:
  22. print(f'Liczbę {szukana} znaleziono na pozycji {pozycja}.')
  23. else:
  24. print(f'W przeszukiwanej liście nie znaleziono liczby {szukana}.')