Завдання 1
Додати метод delete для видалення пар ключ-значення таблиці HashTable , яка реалізована в конспекті.
Завдання 2
Реалізувати двійковий пошук для відсортованого масиву з дробовими числами. Написана функція для двійкового пошуку повинна повертати кортеж, де першим елементом є кількість ітерацій, потрібних для знаходження елемента. Другим елементом має бути "верхня межа" — це найменший елемент, який є більшим або рівним заданому значенню.
Завдання 3
Порівняти ефективність алгоритмів пошуку підрядка: Боєра-Мура, Кнута-Морріса-Пратта та Рабіна-Карпа на основі двох текстових файлів (стаття 1, стаття 2). Використовуючи timeit, треба виміряти час виконання кожного алгоритму для двох видів підрядків: одного, що дійсно існує в тексті, та іншого — вигаданого (вибір підрядків за вашим бажанням). На основі отриманих даних визначити найшвидший алгоритм для кожного тексту окремо та в цілому.
Для наведених датасетів, найшвидшим алгоритмом є : Боєра-Мура
Швидкість для файлу 1 з існуючим підрядком: 0.05974 Швидкість для файлу 1 з неіснуючим підрядком: 0.05439 що є швидшим за інші алгоритми на 0.07535 та 0.14965 відповідно
Швидкість для файлу 2 з існуючим підрядком: 0.09073 Швидкість для файлу 2 з неіснуючим підрядком: 0.08005 що є швидшим за інші алгоритми на 0.39151 та 0.53284 відповідно
File 1 with existing substring
| Algorithms | Speed |
|---------------------|----------|
| kmp_search | 0.13474 |
| boyer_moore_search | 0.05974 |
| rabin_karp_search | 0.30308 |
Fastest: boyer_moore_search with duration time: 0.05974
File 1 with not existing substring
| Algorithms | Speed |
|---------------------|----------|
| kmp_search | 0.20439 |
| boyer_moore_search | 0.05439 |
| rabin_karp_search | 0.38763 |
Fastest: boyer_moore_search with duration time: 0.05439
File 2 with existing substring
| Algorithms | Speed |
|---------------------|----------|
| kmp_search | 0.19545 |
| boyer_moore_search | 0.09073 |
| rabin_karp_search | 0.48224 |
Fastest: boyer_moore_search with duration time: 0.09073
File 2 with not existing substring
| Algorithms | Speed |
|---------------------|----------|
| kmp_search | 0.25328 |
| boyer_moore_search | 0.08005 |
| rabin_karp_search | 0.61789 |
Fastest: boyer_moore_search with duration time: 0.08005