Professional Documents
Culture Documents
Алгоритми Пошуку. Асимптотична Складність
Алгоритми Пошуку. Асимптотична Складність
Асимптотична складність
Теорія алгоритмів
2
Складність задачі
• Зазвичай під найефективнішим алгоритмом розуміється
найшвидший.
• Складність задачі P – це складність найкращого алгоритму, відомого
для її вирішення
𝒇 𝒏 = 𝟔𝒏 + 𝟒 => 𝑓 𝑛 = 𝑂(𝑛)
• Іншими словами асимптотична складність відображає, з якою
швидкістю росте функція 𝑓, якщо 𝑛 прямує до нескінченності.
Алгоритми пошуку
Лінійний пошук
𝑁
1 1 𝑁 𝑁+1 𝑁+1
𝑇 𝑁 = 𝑖 = ∗ =
𝑁 𝑁 2 2
𝑖=1
Двійковий пошук
𝑦−𝑎 𝐿
𝑚=𝐿+ (𝑅 − 𝐿)
𝑎 𝑅 −𝑎 𝐿
𝑦−𝑎 𝐿
• 𝑚=𝐿+ (𝑅 − 𝐿)
55−1 𝑎 𝑅 −𝑎 𝐿
1. 𝑚 = 1 + 70−1
20 − 1 ≈ 16
• y – елемент, який шукається
2. 𝑎[16] = 54 • m - індекс елемента
3. 55 > 54 • L, R – лівий та правий індекси
4. 𝐿 = 17, 𝑅 = 20 частини масиву, у якій іде
55−55 пошук
5. 𝑚 = 17 + 20 − 17 ≈ 17
70−55 • a[R], a[L] – значення елементів
6. 𝑎[17] =55 масиву з відповідними
7. Кінець індексами
КМП алгоритм
Кнута Морріса і Пратта
(Knuth-Morris-Pratt algorithm)