Я прибегая к помощи двоичного поиска в питоне, и я нашел это: http://openbookproject.net/thinkcs/python/english3e/list_algorithms.htmlPython двоичного поиска (максимальное число итераций)
Это говорит о том, что общее соотношение между макс. числа итераций (то же, что и Probe справа?) и N (размер списка) задается N = 2^k -1
, где k - максимальное количество итераций.
Однако из моего понимания, если не вообще отношения быть N = 2^k
Поскольку каждый раз после поиска, мы разделили бы из списка на 2, пока мы не получим до 1.
Поэтому максимальное число итераций is log2 N
вместо log2 (N+1)
У меня есть googled это, и я нашел, что один сайт поддерживает мой ответ, но без особого объяснения. (ссылка здесь: http://codingexplained.com/coding/theory/binary-search-algorithm)
Может ли кто-то объяснить математику позади нее? Благодарю.
«каждый раз после поиска мы разделим список на 2, пока не получим 1 ». Нет: в реализации вы ссылаетесь, каждая итерация * удаляет один элемент списка из рассмотрения *, а затем уменьшает область интереса ко всему либо справа, либо слева от этого элемента. И для конкретности, вы должны думать о «зонде» как поиске списка ('xs [mid_index]'), а не о итерации. –