Kas saate lingitud loendist binaarselt otsida?
Kas saate lingitud loendist binaarselt otsida?

Video: Kas saate lingitud loendist binaarselt otsida?

Video: Kas saate lingitud loendist binaarselt otsida?
Video: 7 ЛУЧШИХ подсказок Google Bard и ChatGPT для повышения уровня вашего контента 2024, Mai
Anonim

jah, Binaarne otsing on võimalik lingitud loend, kui a nimekirja on tellitud ja sina teada elementide arvu nimekirja . Kuid sorteerimise ajal nimekirja , sa saad pääseb korraga juurde ühele elemendile, kasutades kursorit sellele sõlmele, st kas eelmisele või järgmisele sõlmele.

Nii, milline on ajaline keerukus, kui lingitud loendis rakendatakse binaarset otsingut?

Aja keerukus ei tohiks olla suurem kui O(log n). Nagu lingitud loend teeb ei paku juhuslikku juurdepääsu, kui proovime rakenda binaarset otsingut algoritmi seda tahe jõuda O(n), nagu vaja leida pikkus nimekirja ja mine keskele.

Tea ka, kuidas binaarne otsing rakendatakse? Binaarne otsing : Otsing sorteeritud massiiv, jagades korduvalt otsing intervall pooleks. Alustage intervalliga, mis hõlmab kogu massiivi. Kui väärtus otsing klahv on väiksem kui intervalli keskel olev üksus, vähendage intervalli alumisele poolele. Vastasel juhul kitsendage seda ülemise pooleni.

Millist meetodit kasutab binaarne otsing loendist elemendi leidmiseks?

Binaarne otsing töötab sorteeritud massiividel. Binaarne otsing algab an element massiivi keskel koos sihtmärgiga väärtus . Kui sihtmärk väärtus sobib element , tagastatakse selle asukoht massiivis. Kui sihtmärk väärtus on väiksem kui element , otsing jätkub massiivi alumises pooles.

Kuidas lingitud loendit korrata?

An Iteraator saab kasutada silmuse tegemiseks läbi an LinkedList . Meetod hasNext() tagastab tõene, kui selles on rohkem elemente LinkedList ja muidu vale. Meetod next() tagastab järgmise elemendi failis LinkedList ja viskab erandi NoSuchElementException, kui järgmist elementi pole.

Soovitan: