Можете ли вы выполнить двоичный поиск в связанном списке?
Можете ли вы выполнить двоичный поиск в связанном списке?

Видео: Можете ли вы выполнить двоичный поиск в связанном списке?

Видео: Можете ли вы выполнить двоичный поиск в связанном списке?
Видео: Реализация односвязного списка c++ Часть 1 | Урок #133 2024, Ноябрь
Anonim

Да, Бинарный поиск возможно на связанный список, если в список заказан и ты знать количество элементов в список . Но при сортировке список , вы можете доступ к одному элементу за раз через указатель на этот узел, то есть либо предыдущий узел, либо следующий узел.

Итак, какова будет временная сложность, когда бинарный поиск применяется к связному списку?

Сложность времени не должно быть больше O (log n). В качестве связанный список делает не предоставлять произвольный доступ, если мы пытаемся применить бинарный поиск алгоритм это буду достичь O (n), как нам нужно найти длина список и идем в середину.

Также знаете, как реализован бинарный поиск? Бинарный поиск : Поиск отсортированный массив путем многократного деления поиск интервал пополам. Начните с интервала, охватывающего весь массив. Если значение поиск ключ меньше, чем элемент в середине интервала, сузьте интервал до нижней половины. В противном случае сузьте его до верхней половины.

Итак, какой метод двоичного поиска использует для поиска элемента в списке?

Бинарный поиск работает с отсортированными массивами. Бинарный поиск начинается со сравнения элемент в середине массива с целью ценить . Если цель ценить соответствует элемент , возвращается его позиция в массиве. Если цель ценить меньше, чем элемент , то поиск продолжается в нижней половине массива.

Как вы перебираете связанный список?

An Итератор можно использовать для зацикливания через ан LinkedList . Метод hasNext () возвращает true, если в LinkedList и false в противном случае. Метод next () возвращает следующий элемент в LinkedList и выдает исключение NoSuchElementException, если следующего элемента нет.

Рекомендуемые: