Mi a bináris keresés a Java-ban? Hogyan kell megvalósítani?



A Java bináris keresés olyan keresési algoritmus, amely egy rendezett tömbben megtalálja a célérték helyzetét. Ebben a cikkben elmondom, hogyan kell megvalósítani egy példa segítségével.

A keresési és rendezési algoritmusok a népszerű algoritmusok bármilyen programozási nyelven. Ezek képezik az alapját a programozás alapjainak megértéséhez. Az egyik ilyen népszerű keresési algoritmus a Binary Search in . Ebben a cikkben mindent elmondok a megvalósításáról.

Az alábbi témákkal foglalkozik ez a cikk:





Lássunk neki!

Mi az a bináris keresés?

Bináris keresés egy keresési algoritmus, amely rendezetten megtalálja a célérték pozícióját sor . Bináris keresés összehasonlítja a célértéket a tömb középső elemével. Aztcsak rendezett elemkészleten működik. Ha bináris keresést szeretne használni egy gyűjteményen, akkor a előbb rendezni kell.



Bináris kereső program Java-ban - Bináris keresés Java-ban - EdurekaAmikor az rendezett halmaz műveleteinek végrehajtására szolgál, az iterációk száma mindig csökkenthető a keresett érték alapján. A fenti pillanatfelvételen megtalálhatja a középső elem . A bináris keresés analógiája az, hogy a tömbbe rendezett információkat használja, és csökkenti az idő bonyolultságát O (log n) .

Bináris keresési algoritmus megvalósítása

Vessünk egy pillantást az alábbi álkódra, hogy jobban megértsük.

Binary_search eljárás & larr rendezett tömb n & larr tömb mérete x & larr keresendő érték Legyen alacsony = 1 Állítsa magas = n, míg x nem található, ha magas

Magyarázat:



1. lépés: Először hasonlítsa össze az x-et a középső elemmel.

2. lépés: Ha x megfelel a középső elemnek, akkor vissza kell adnia a középső indexet.

3. lépés: Egyébként, ha x nagyobb, mint a középső elem, akkor x csak a jobb oldali fél tömbben fekszik a középső elem után. Ezért megismétli a jobb felét.

4. lépés: Egyébként, ha (x kisebb), akkor a bal fele megismétlődik.

Így kell keresni az elemet az adott tömbben.

szubsztring az SQL szerver példában

Most nézzük meg, hogyan lehet egy bináris keresési algoritmust rekurzívan megvalósítani. Az alábbi program ugyanezt demonstrálja.

Rekurzív bináris keresés

public class BinarySearch {// rekurzív bináris keresés Java implementációja // Visszaadja x indexét, ha az arr [l..h] -ben van, máskülönben -1 int bináris keresést ad (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Ha az elem magában a közepén van, ha (a [mid] == x) tér vissza // If elem kisebb, mint a közepe, akkor a bal alrészben csak akkor lehet jelen, ha (a [közép]> x) visszatér a bináris kereséshez (arr, l, közepe - 1, x) // Egyébként az elem csak a jobb oldali részben jelenhet meg return bináris keresés (arr, mid + 1, h, x)} // Ide érünk, amikor az elem nincs jelen a tömbben return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.hosszúság int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Elem nincs jelen') else System.out.println ('Elem található az indexen' + res)}}

A fenti program futtatásakor megkeresi az adott indexen található elemet

A 2. indexen található elem

Tehát ezzel a bináris keresés végére érünk Jáva cikk. Remélem, informatívnak találta, és segített a megértésben .

Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Azért vagyunk itt, hogy segítséget nyújtsunk utazásának minden lépésében, hogy a java interjú kérdései mellé váljunk. Olyan tananyagot állítunk össze, amely olyan hallgatók és szakemberek számára készült, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték, hogy előrelépést nyújtson a Java programozásban, és kiképezzen mind az alapvető, mind a fejlett Java koncepciókra, valamint a különböző Java keretrendszerekkel, például a Hibernate & Spring.

Abban az esetben, ha bármilyen nehézségbe ütközik a bináris keresés végrehajtása során , kérjük, említse meg az alábbi megjegyzések részben és leghamarabb visszajövünk.