Algorytmy wyszukiwania i sortowania to popularne algorytmy w dowolnych językach programowania. Są podstawą do zrozumienia podstaw programowania. Jednym z takich popularnych algorytmów wyszukiwania jest wyszukiwanie binarne w formacie . W tym artykule opowiem Ci wszystko o jego realizacji.
Poniższe tematy są omówione w tym artykule:
- Co to jest wyszukiwanie binarne?
- Implementacja algorytmu wyszukiwania binarnego
- Rekurencyjne wyszukiwanie binarne
Zacznijmy!
Co to jest wyszukiwanie binarne?
Wyszukiwanie binarne w jest algorytm wyszukiwania, który znajduje pozycję wartości docelowej w posortowanym szyk . Wyszukiwanie binarne porównuje wartość docelową ze środkowym elementem tablicy. Todziała tylko na posortowanym zestawie elementów. Aby użyć wyszukiwania binarnego w kolekcji, rozszerzenie należy najpierw posortować.
Kiedy służy do wykonywania operacji na sortowanym zbiorze, liczbę iteracji można zawsze zmniejszyć na podstawie szukanej wartości. Możesz zobaczyć na powyższej migawce znalezienia pliku element środkowy . Analogią wyszukiwania binarnego jest użycie informacji, do których tablica jest posortowana, i zmniejszenie złożoności czasowej O (log n) .
Implementacja algorytmu wyszukiwania binarnego
Przyjrzyjmy się poniższemu pseudokodowi, aby lepiej go zrozumieć.
Procedura binary_search A & larr posortowana tablica n & larr rozmiar tablicy wartość x & larr do przeszukania Ustaw niski = 1 Ustaw wysoki = n, podczas gdy x nie zostanie znaleziony, jeśli jest wysokiWyjaśnienie:
Krok 1: Najpierw porównaj x ze środkowym elementem.
Krok 2: Jeśli x pasuje do środkowego elementu, musisz zwrócić środkowy indeks.
Krok 3: W przeciwnym razie, jeśli x jest większe niż element środkowy, to x może leżeć tylko w pół tablicy po prawej stronie za elementem środkowym. Dlatego powtarzasz prawą połowę.
Krok 4: W przeciwnym razie, jeśli (x jest mniejsze), to powtórz dla lewej połowy.
Oto jak musisz szukać elementu w danej tablicy.
jak zainstalować phpZobaczmy teraz, jak zaimplementować rekurencyjny algorytm wyszukiwania binarnego. Poniższy program demonstruje to samo.
Rekurencyjne wyszukiwanie binarne
public class BinarySearch {// implementacja rekurencyjnego wyszukiwania binarnego w języku Java // Zwraca indeks x, jeśli występuje w arg [l..h], w przeciwnym razie zwraca -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Jeśli element jest obecny w samym środku if (a [mid] == x) return mid // If element jest mniejsza niż mid, to może być obecna tylko w lewej podtablicy, jeśli (a [mid]> x) return binarySearch (arr, l, mid - 1, x) // W przeciwnym razie element może być obecny tylko w prawej podtablicy return binarySearch (arr, mid + 1, h, x)} // Dochodzimy tutaj, gdy element nie jest obecny w tablicy return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.length int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Brak elementu') else System.out.println ('Element znaleziony w indeksie' + res)}}Wykonując powyższy program, zlokalizuje element obecny w określonym indeksie
Element znaleziony pod indeksem 2To prowadzi nas do końca wyszukiwania binarnego w Jawa artykuł. Mam nadzieję, że znalazłeś to pouczające i pomogło ci w zrozumieniu .
Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Jesteśmy tutaj, aby pomóc Ci na każdym etapie Twojej podróży, aby stać się oprócz tego pytania do wywiadu Java. Opracowujemy program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i szkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
Jeśli napotkasz jakiekolwiek trudności podczas wdrażania wyszukiwania binarnego w , wspomnij o tym w sekcji komentarzy poniżej a my skontaktujemy się z Tobą najwcześniej.