У меня есть алгоритм последовательного поиска несортированному массива:Нахождение среднего случая сложности алгоритма
SequentialSearch(A[0..n-1],K)
i=0
while i < n and A[i] != K do
i = i+1
if i < n then return i
else return -1
Где мы имеем входной массив A[0...n-1]
и поиск ключа K
Я знаю, что худший случай - n
, потому что нам нужно будет искать весь массив, следовательно, n пунктов O(n)
Я знаю, что лучший случай - 1, поскольку это будет означать первый предмет, ch - тот, который мы хотим, или массив имеет все те же элементы, в любом случае это O (1)
Но я понятия не имею, как рассчитать средний случай. Ответ мой учебник дает это:
= (p/n)[1+2+...+i+...+n] + n(1-p)
есть общая формула, я могу следовать, когда я вижу алгоритм, как этот, чтобы вычислить его?
ИЗОБРАЖЕНИЯ НИЖЕ Textbook example
EDIT: Проверьте изображение я добавил который показывает решение, я просто не знаю, как они получают его. – o4o42o3k2o
https://en.wikipedia.org/wiki/Linear_search –
@mitch пшеница, точно. Мой ответ ниже соответствует записи, с которой вы связались. Видимо, кто-то импульсивно проголосовал за это, потому что это перевернулось. –