Co je to binární vyhledávání v Javě? Jak to implementovat?



Binární vyhledávání v Javě je vyhledávací algoritmus, který najde pozici cílové hodnoty v seřazeném poli. V tomto článku vám řeknu, jak jej implementovat pomocí příkladu.

Algoritmy pro vyhledávání a třídění jsou populární algoritmy ve všech programovacích jazycích. Jsou základem pro pochopení základů programování. Jedním z takových populárních vyhledávacích algoritmů je Binary Search in . V tomto článku vám povím vše o jeho implementaci.

V tomto článku se věnujeme níže uvedeným tématům:





Začněme!

Co je to binární vyhledávání?

Binární vyhledávání v je vyhledávací algoritmus, který najde polohu cílové hodnoty v seřazeném pole . Binární vyhledávání porovnává cílovou hodnotu se středním prvkem pole. Tofunguje pouze na tříděné sadě prvků. Chcete-li použít binární vyhledávání v kolekci, musí být nejprve tříděny.



Program binárního vyhledávání v Javě - Binární vyhledávání v Javě - EdurekaKdyž se používá k provádění operací na tříděné sadě, počet iterací lze vždy snížit na základě hodnoty, která je prohledávána. Na výše uvedeném snímku můžete najít střední prvek . Analogií binárního vyhledávání je použití informace, že je pole seřazeno, a snížení časové složitosti O (log n) .

Implementace binárního vyhledávacího algoritmu

Podívejme se na níže uvedený pseudokód, abychom jej lépe pochopili.

Procedura binary_search A & larr seřazené pole n & larr velikost pole x & larr hodnota, která má být prohledána Set low = 1 Set high = n while x not found if high

Vysvětlení:



Krok 1: Nejprve porovnejte x se středním prvkem.

Krok 2: Pokud se x shoduje s prostředním prvkem, musíte vrátit střední index.

Krok 3: Jinak, pokud x je větší než prostřední prvek, pak x může ležet pouze v poloviční matici na pravé straně za prostředním prvkem. Proto opakujete pravou polovinu.

Krok 4: Jinak pokud (x je menší), pak se opakuje pro levou polovinu.

Takto musíte vyhledat prvek v daném poli.

deklarace pole objektů v Javě

Podívejme se nyní, jak rekurzivně implementovat algoritmus binárního vyhledávání. Níže uvedený program ukazuje totéž.

Rekurzivní binární vyhledávání

veřejná třída BinarySearch {// Implementace Java rekurzivního binárního vyhledávání // Vrátí index x, pokud je přítomen v arr [l..h], jinak vrátí -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Pokud je prvek přítomen v samotném středu if (a [mid] == x) vrátit mid // If element je menší než střední, pak může být přítomen pouze v levém dílčím poli, pokud (a [střední]> x) vrátí binarySearch (arr, l, mid - 1, x) // Jinak může být prvek přítomen pouze v pravém dílčím poli vrátit binarySearch (arr, mid + 1, h, x)} // Dostaneme se sem, když prvek není v poli 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 ('Element not present') else System.out.println ('Element found at index' + res)}}

Při provádění výše uvedeného programu vyhledá prvek přítomný v konkrétním indexu

Prvek nalezen v indexu 2

Tím se dostáváme na konec Binárního vyhledávání v Jáva článek. Doufám, že jste to shledali informativními a pomohli vám pochopit .

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Jsme tu, abychom vám pomohli s každým krokem na vaší cestě, abychom se stali dalšími otázkami java interview. Přicházíme s osnovami, které jsou určeny pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými rámci Java, jako je Hibernate & Spring.

V případě, že při implementaci Binárního vyhledávání v systému narazíte na potíže , uveďte to prosím v sekci komentáře níže a my se vám ozveme nejdříve.