A mund të kërkoni binar në një listë të lidhur?
A mund të kërkoni binar në një listë të lidhur?

Video: A mund të kërkoni binar në një listë të lidhur?

Video: A mund të kërkoni binar në një listë të lidhur?
Video: Më Trego Emrin Tend, Dhe Unë Do Ta Zbuloj Shpirtin Tend Binjak 2024, Mund
Anonim

Po, Kërkimi binar është e mundur në lista e lidhur nëse të listë porositet dhe ju di numrin e elementeve në listë . Por gjatë renditjes së listë , ti mundesh aksesoni një element të vetëm në një kohë përmes një treguesi në atë nyje, d.m.th., një nyje e mëparshme ose nyje tjetër.

Po kështu, cili do të jetë kompleksiteti kohor kur një kërkim binar aplikohet në një listë të lidhur?

Kompleksiteti kohor nuk duhet të jetë më shumë se O(log n). Si lista e lidhur bën të mos ofrojmë akses të rastësishëm nëse përpiqemi aplikoni kërkimin binar algoritmi atë do arrijmë në O(n) siç duhet Gjej gjatësia e listë dhe shkoni në mes.

Gjithashtu e dini, si zbatohet kërkimi binar? Kërkimi binar : Kërko një grup i renditur duke e ndarë në mënyrë të përsëritur kërkimi intervali në gjysmë. Filloni me një interval që mbulon të gjithë grupin. Nëse vlera e kërkimi çelësi është më i vogël se artikulli në mes të intervalit, ngushtoni intervalin në gjysmën e poshtme. Përndryshe, ngushtojeni në gjysmën e sipërme.

Prandaj, cilën metodë përdor kërkimi binar për të gjetur një element në një listë?

Kërkimi binar punon në vargje të renditura. Kërkimi binar fillon duke krahasuar një element në mes të grupit me objektivin vlerë . Nëse objektivi vlerë përputhet me element , pozicioni i tij në grup është kthyer. Nëse objektivi vlerë është më pak se element , kërkimi vazhdon në gjysmën e poshtme të grupit.

Si të përsërisni përmes një liste të lidhur?

Një Iterator mund të përdoret për të lakuar përmes një Lista e Lidhjeve . Metoda hasNext() kthen true nëse ka më shumë elementë brenda Lista e Lidhjeve dhe e rreme ndryshe. Metoda next() kthen elementin tjetër në Lista e Lidhjeve dhe hedh përjashtimin NoSuchElementException nëse nuk ka element tjetër.

Recommended: