2013-06-24 2 views
-1

Я смущен, является ли линейный поиск или бинарный поиск более эффективным при работе и хранении.Какая эффективность и эффективность во время работы эффективны в алогариме?

Поводу объяснений действительно оценили

+0

Конечно, бинарный поиск более эффективен, если список уже отсортирован по алгоритму 'O (log N), а линейный поиск принимает значение O (N) 'для сортированных и несортированных данных. Для отсортированных данных используется двоичный поиск, для несортированных данных используется линейный поиск. –

+0

Похожие сообщения: [что означает O (N)] (http://stackoverflow.com/questions/1909307/what-does-on-mean), [Что означает O (log n)?] (Http: //stackoverflow.com/questions/2307283/what-does-olog-n-mean-exactly) –

+2

Если бы вы потратили пару минут до публикации, чтобы прочитать первые несколько предложений соответствующих статей в Википедии ([linear] (http : //en.wikipedia.org/wiki/Linear_search), [binary] (http://en.wikipedia.org/wiki/Binary_search)), вы бы увидели это: _... Поэтому, если в списке больше чем несколько элементов, другие методы (такие как ** бинарный поиск или хеширование) будут быстрее **, но они также налагают дополнительные требования. – DaoWen

ответ

3

@Trophe покрыл сложность времени, поэтому я попытаюсь объяснить пространство сложности,

Требование пространства имеет ту же сложность

линейный поиск является проще и требует только одна переменной

бинарные должно хранить нижнюю и верхнюю границу, так что более пространство, но это не зависит от размера списка

Таким образом, мы говорим, что они представляют собой как O (1) пространственную сложность

3

линейный поиск начинается с начала и сравнивает каждый элемент до тех пор, пока не найдет то, что вы ищете.

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

0 Например, Список людей. Вы ищете Джона. Бинарный поиск выглядит посреди списка и может найти Mark. Джон ниже, поэтому поиск отбрасывает верхнюю половину списка, так как Джон не будет в нем и повторяет это в нижней половине (рекурсия)

Бинарный поиск намного эффективнее, но список должен быть отсортирован.

Однако - сортировка списка происходит медленнее, чем линейный поиск. Вы не выигрываете в эффективности, сначала сортируя несортированный список.

+2

Зависит от того, сколько раз вы будете искать список, если это всегда так, никто никогда не будет сортировать список. –

+0

@ Jake Продавцы: Да, хорошая точка. Хорошим примером является адресная книга. Вероятно, вы будете искать гораздо чаще, чем добавлять новых людей. – Christoffer