Tudsz binárisan keresni egy linkelt listában?
Tudsz binárisan keresni egy linkelt listában?

Videó: Tudsz binárisan keresni egy linkelt listában?

Videó: Tudsz binárisan keresni egy linkelt listában?
Videó: Binary search in linked list | Binary Search algorithm full explanation 2024, November
Anonim

Igen, Bináris keresés lehetséges a linkelt lista ha az lista el van rendelve és te tudja a benne lévő elemek számát lista . De válogatás közben a lista , tudsz Egyszerre egyetlen elemhez férhet hozzá az adott csomópontra mutató mutatón keresztül, azaz vagy egy előző csomóponton vagy a következő csomóponton.

Csak hát, mi lesz az idő bonyolultsága, ha bináris keresést alkalmazunk egy linkelt listán?

Időbeli összetettség nem lehet több, mint O(log n). Mint linkelt lista igen nem biztosítunk véletlenszerű hozzáférést, ha megpróbáljuk bináris keresés alkalmazása algoritmusa azt akarat elérjük az O(n)-t, ahogy kell megtalálja hossza a lista és menj a közepére.

Tudja azt is, hogyan valósul meg a bináris keresés? Bináris keresés : Keresés egy rendezett tömb ismételt elosztásával keresés intervallum fele. Kezdje a teljes tömböt lefedő intervallumtal. Ha az értéke a keresés gomb kisebb, mint az intervallum közepén lévő elem, szűkítse az intervallumot az alsó felére. Ellenkező esetben szűkítse a felső felére.

Ebből kifolyólag a bináris keresés melyik módszerrel keres egy elemet a listában?

Bináris keresés rendezett tömbökön működik. Bináris keresés összehasonlításával kezdődik elem a tömb közepén a céllal érték . Ha a cél érték egyezik a elem , akkor a tömbben elfoglalt pozíciója kerül visszaadásra. Ha a cél érték kisebb, mint a elem , az keresés a tömb alsó felében folytatódik.

Hogyan iterálsz egy linkelt listát?

An Iterátor hurkolásra használható keresztül an LinkedList . A hasNext() metódus igazat ad vissza, ha több elem van benne LinkedList és egyébként hamis. A next() metódus a következő elemet adja vissza a LinkedList és kidobja a NoSuchElementException kivételt, ha nincs következő elem.

Ajánlott: