Розв'язання колізій при хешуванні
а) Вибір варіанта індивідуального завдання: № варіанта = ( DN + RN + А2 ) % 25+ 1 б) Варіанти завдань: Розв'язання колізій при хешуванні здійснити: 1. методом роздільних ланцюжків (розмірність хеш-таблиці m=37 замінити на m=7); 2. методом відкритого хешування (розмірність хеш-таблиці m=37 замінити на m=9); 3. методом відкритої адресації з функцією повторного хешування hi(key) = ( h(key) + i ) % m; 4. методом закритого хешування з функцією повторного хешування hi(key) = ( h(key) + 2 · i ) % m; 5. методом лінійного зондування з функцією повторного хешування hi(key) = ( h(key) + 3 · i ) % m; 6. методом лінійної послідовності спроб з функцією повторного хешування hi(key) = ( h(key) + 4 · i ) % m; 7. методом рехешування з функцією повторного хешування hi(key) = ( h(key) + pi ) % m , де pi – послідовність випадкових цілих чисел: p1 = 3, р2 = 1, p3 = 7 , 4 = 4 , ... (за потребою, продовжити цей ряд); 8. методом рехешування додаванням з функцією повторного хешування hi(key) = ( h(key) + i · h(key) ) % m; 9. методом відкритої адресації з функцією повторного хешування, що задається таким способом: спочатку перевіряється комірка h(key)+1, після цього перевіряється комірка h(key)–1, далі комірка h(key)+2, далі h(key)–2, далі h(key)+3 і так далі. Якщо досягається один з країв таблиці, то пошук продовжувати тільки з одного боку ключа (тобто тільки +і або тільки –і). 10. методом відкритої адресації з функцією повторного хешування hi(key) = ( h(key) + i 2 ) % m; 11. методом закритого хешування з функцією повторного хешування hi(key) = ( h(key) + 2 · i 2 ) % m; 12. методом квадратичного зондування з функцією повторного хешування hi(key) = ( h(key) + 3 · i 2 ) % m; 13. методом квадратичної послідовності спроб з функцією повторного хешування hi(key) = ( h(key) + 4 · i 2 ) % m; 14. методом рехешування з функцією повторного хешування hi(key) = ( h(key) + pi · i 2 ) % m , де pi – послідовність випадкових цілих чисел: p1 = 2, р2 = 5, p3 = 1, р4 = 3, ... (за потребою, продовжити цей ряд); 15. методом відкритої адресації з функцією повторного хешування hi(key) = ( h(key) + 4 · і + i 2 ) % m; 16. методом закритого хешування з функцією повторного хешування hi(key) = ( h(key) + 3 · і + 2 · i 2 ) % m; 17. методом квадратичного зондування з функцією повторного хешування hi(key) = ( h(key) + 2 · і + 3 · i 2 ) % m; 18. методом квадратичної послідовності спроб з функцією повторного хешування hi(key) = ( h(key) + і + 4 · i 2 ) % m; 19. методом рехешування з функцією повторного хешування hi(key) = ( h(key) + сi · і + pi · i 2 ) % m , де сi , pi – послідовності випадкових цілих чисел: с1 = 4, с2 = 1, с3 = 5, ... ; p1 = 3, р2 = 2, p3 = 4 , ... (за потребою, продовжити ці ряди); 20. методом відкритої адресації з функцією подвійного хешування hi(key) = ( h(key) + i · g(key) ) % m , де g(key) = 7 – (АSCII-код першого символа ключа – 5) % 7 ; 21. методом закритого хешування з функцією подвійного хешування hi(key) = ( h(key) + i · g(key) ) % m , де g(key) = 5 – (АSCII-код останього символа ключа + 2) % 5 ; 22. методом лінійного зондування з функцією подвійного хешування hi(key) = ( h(key) + 2 · i · g(key) ) % m , де g(key) = 1 + (АSCII-код першого символа ключа + 2) % 3 ; 23. методом рехешування з функцією подвійного хешування hi(key) = ( h(key) + 3 · i · g(key) ) % m , де g(key) = 4 – (АSCII-код останього символа ключа – 9) % 3 ; 24. методом відкритої адресації з функцією повторного хешування hi(key) = ( h(key) + i ) % m та шляхом побудови динамічної хеш-таблиці (при заповненні хеш-таблиці більше ніж наполовину, збільшити її розмір в 2 раза); 25. методом відкритої адресації з функцією повторного хешування hi(key) = ( h(key) + i ) % m та шляхом зміни структури хеш-таблиці (кожну комірку хеш-таблиці замінити блоком з трьох комірок);
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|