Вопрос: Рассмотрим линейный поиск. Сколько элементов на входе последовательность необходимо проверить на среднем , предполагая, что элемент с одинаковой вероятностью будет искать любой элемент в массиве?

Как мне решить эту проблему? Нужно ли мне брать случай, когда элемент отсутствует в последовательности? В этом случае необходимо проверить все n элементов.

Всего нет. случаев (n + 1). Поэтому среднего нет. элементов для проверки = (1 + ... + n + n) / (n + 1). Это правильный ответ?

0
In78 31 Май 2015 в 05:57
4
«Нужно ли мне брать случай, когда элемент отсутствует в последовательности?» - спросите человека, задающего вопрос.
 – 
Steve McLeod
31 Май 2015 в 05:58
2
Просто прочтите статью в Википедии о линейном поиске, и вы узнаете о нем все ... en.wikipedia.org/wiki / Linear_search
 – 
Surely
31 Май 2015 в 06:00
2
Я думаю, что ответ на ваш вопрос «С равной вероятностью может быть любой элемент в массиве».
 – 
David Hoelzer
31 Май 2015 в 06:00

1 ответ

Лучший ответ

Различение двух случаев, когда элемент находится в массиве (успешный поиск) и где его нет (неудачный поиск).

Для успешного поиска среднее значение составляет (1 + 2 + ... + n) / n = (n + 1) / 2.

Среднее значение для безуспешного поиска равно n.

Общее среднее значение теперь зависит от сочетания успешных и неудачных поисков. Например, если большинство поисков безуспешно, оно будет близко к n. Если все поиски успешны (похоже, это то, что подразумевается под вопросом), среднее значение составляет (n + 1) / 2.

Если вероятность успешного поиска равна p, и, следовательно, для неудачного поиска 1-p, мы получаем в среднем p * (n + 1) / 2 + (1-p) * n.

4
Henry 31 Май 2015 в 10:38