Puteți căuta binar într-o listă legată?
Puteți căuta binar într-o listă legată?

Video: Puteți căuta binar într-o listă legată?

Video: Puteți căuta binar într-o listă legată?
Video: Binary search in linked list | Binary Search algorithm full explanation 2024, Noiembrie
Anonim

Da, Căutare binară este posibil pe lista legată dacă cel listă este comandat şi tu cunoașteți numărul de elemente din listă . Dar în timp ce sortați listă , poti accesați un singur element la un moment dat printr-un pointer către acel nod, adică fie un nod anterior, fie un nod următor.

Chiar așa, care va fi complexitatea timpului atunci când o căutare binară este aplicată pe o listă legată?

Complexitatea timpului nu trebuie să fie mai mare de O(log n). La fel de lista legată face nu oferim acces aleatoriu dacă încercăm aplicați căutarea binară algoritm-l voi ajungem la O(n) așa cum trebuie găsi lungimea listă și mergi la mijloc.

Știți, de asemenea, cum este implementată căutarea binară? Căutare binară : Căutare o matrice sortată prin împărțirea în mod repetat a căutare interval la jumătate. Începeți cu un interval care acoperă întreaga matrice. Dacă valoarea lui căutare cheia este mai mică decât elementul din mijlocul intervalului, restrângeți intervalul la jumătatea inferioară. În caz contrar, îngustează-l la jumătatea superioară.

Din acest motiv, ce metodă folosește căutarea binară pentru a găsi un element dintr-o listă?

Căutare binară funcționează pe matrice sortate. Căutare binară începe prin a compara o element în mijlocul matricei cu ținta valoare . Dacă ţinta valoare se potrivește cu element , poziția sa în matrice este returnată. Dacă ţinta valoare este mai mică decât element , cel căutare continuă în jumătatea inferioară a matricei.

Cum repetați o listă legată?

Un Iterator poate fi folosit pentru a bucla prin un LinkedList . Metoda hasNext() returnează true dacă există mai multe elemente în LinkedList si fals in rest. Metoda next() returnează următorul element din LinkedList și aruncă excepția NoSuchElementException dacă nu există niciun element următor.

Recomandat: