Можете ли да търсите в двоично свързан списък?
Можете ли да търсите в двоично свързан списък?

Видео: Можете ли да търсите в двоично свързан списък?

Видео: Можете ли да търсите в двоично свързан списък?
Видео: Section 10 2024, Ноември
Anonim

да, Двоично търсене е възможно на свързан списък, ако на списък е поръчан и Вие познайте броя на елементите в списък . Но докато сортирате списък , можеш достъп до един елемент в даден момент чрез указател към този възел, т.е. или предишен възел, или следващ възел.

Точно така, каква ще бъде времевата сложност, когато се приложи двоично търсене към свързан списък?

Времева сложност не трябва да бъде повече от O(log n). Като свързаният списък прави не предоставяме произволен достъп, ако се опитаме прилага двоично търсене алгоритъм го ще достигнем O(n), както трябва намирам дължина на списък и отидете в средата.

Също така знаете, как се изпълнява двоичното търсене? Двоично търсене : Търсене сортиран масив чрез многократно разделяне на Търсене интервал наполовина. Започнете с интервал, покриващ целия масив. Ако стойността на Търсене ключът е по-малък от елемента в средата на интервала, стеснете интервала до долната половина. В противен случай го стеснете до горната половина.

Следователно, кой метод използва двоичното търсене, за да намери елемент в списък?

Двоично търсене работи върху сортирани масиви. Двоично търсене започва със сравняване на an елемент в средата на масива с целта стойност . Ако целта стойност съвпада с елемент връща се неговата позиция в масива. Ако целта стойност е по-малко от елемент , на Търсене продължава в долната половина на масива.

Как преминавате през свързан списък?

Ан Итератор може да се използва за цикъл през ан LinkedList . Методът hasNext() връща true, ако има повече елементи LinkedList и невярно в противен случай. Методът next() връща следващия елемент в LinkedList и хвърля изключението NoSuchElementException, ако няма следващ елемент.

Препоръчано: