Mis on binaarotsing Java-s? Kuidas seda rakendada?



Binaarotsing Java-s on otsingu algoritm, mis leiab sihtväärtuse positsiooni sorteeritud massiivist. Selles artiklis ütlen teile, kuidas seda näite abil rakendada.

Otsingu- ja sortimisalgoritmid on populaarsed algoritmid mis tahes programmeerimiskeeles. Need on aluseks programmeerimise põhialuste mõistmiseks. Üks selline populaarne otsingu algoritm on binaarotsing sisse . Selles artiklis räägin teile kõigile selle rakendamisest.

Selles artiklis käsitletakse järgmisi teemasid:





Alustame!

Mis on binaarotsing?

Binaarne otsing on otsingu algoritm, mis leiab sihtväärtuse positsiooni sorteeritult massiiv . Binaarotsing võrdleb sihtväärtust massiivi keskmise elemendiga. Seetöötab ainult sorteeritud elementide komplektil. Binaarotsingu kasutamiseks kollektsioonis tuleb kõigepealt sorteerida.



Binaarotsingu programm Java - Binaarotsing Java - EdurekaKui kasutatakse sorteeritud komplekti toimingute tegemiseks, saab korduste arvu alati otsitava väärtuse põhjal vähendada. Näete ülaltoodud hetkepildist keskelement . Binaarotsingu analoogia on massiivi sorteerimise teabe kasutamine ja aja keerukuse vähendamine O (log n) .

Binaarotsingu algoritmi juurutamine

Heidame pilgu allpool olevale pseudokoodile, et sellest paremini aru saada.

Protseduur binary_search A & larr sorteeritud massiiv n & larr massiivi suurus x & larr otsitava väärtuse väärtus Määra madal = 1 Määra kõrge = n, samas kui x ei leita, kui kõrge

Selgitus:



Samm 1: Kõigepealt võrrelge x keskmise elemendiga.

2. samm: Kui x sobib keskmise elemendiga, peate tagastama keskmise indeksi.

3. samm: Muul juhul, kui x on suurem kui keskelement, siis saab x asuda ainult parempoolses poolmassiivis pärast keskelementi. Seega kordate paremat poolaega.

4. samm: Muidu, kui (x on väiksem), siis kordub vasak pool.

Nii peate antud massiivist elemendi otsima.

HTML-silt reavahetuse sisestamiseks

Vaatame nüüd, kuidas kahendotsingu algoritmi rekursiivselt rakendada. Allpool olev programm demonstreerib sama.

Rekursiivne binaarotsing

public class BinarySearch {// rekursiivse binaarotsingu Java rakendamine // Annab vastuseks x indeksi, kui see on arr [l..h], muidu tagastab -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Kui element asub keskel ise, kui (a [keskosa == x) tagastab keskosa // If element on väiksem kui keskel, siis saab see esineda vasakpoolses alamkaardis ainult juhul, kui (a [keskosa] x) tagastab binaarotsingu (arr, l, keskpaik - 1, x) // Muul elemendil võib olla ainult paremal alamkaardil tagastatav binaarotsing (arr, mid + 1, h, x)} // Jõuame siia, kui elementi massiivis ei ole. Tagasi -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a. Pikkus int x = 40 int res = ob.binaarotsing (a, 0, n - 1, x) if (res == -1) System.out .println ('Elementi pole') else System.out.println ('Element leitud registrist' + res)}}

Ülaltoodud programmi käivitamisel leiab see kindlas indeksis oleva elemendi

Element leitud indeksilt 2

Nii et see viib meid kahendotsingu lõppu aastal Java artikkel. Loodetavasti leidsite, et see on informatiivne ja aitas teil mõista .

Vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Oleme siin, et aidata teid igal sammul teie teekonnal, et saada javaintervjuu küsimustele lisaks. Me pakume välja õppekava, mis on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kui teil tekib binaarotsingu rakendamisel rakenduses raskusi , palun mainige seda allpool olevas kommentaaride jaotises ja me pöördume teie poole kõige varem.