Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Розширююче хешування

Псевдовипадкове зондування

Квадратичне зондування

Квадратичне зондування – процес, ідентичний лінійному зондуванню за винятком того, що пошук вільної комірки здійснюється не лінійно, а у зростаючій квадратичній прогресії – 1, 4, 9, 16, 25, 36 і т.д.

Квадратичне зондування дозволяє звільнитися від проблеми “кластерів”, які можуть утворюватися за умови лінійного зондування, однак погано підходить для невеликих хеш-таблиць, оскільки не дозволяє обійти усі доступні комірки

Квадратичне зондування більш прийнятне для великих хеш-таблиць

Псевдовипадкове зондування – схема хешування з відкритою адресацією, призначена для уникання колізій за рахунок пошуку вільного місця у хеш-таблиці, використовуючи для цього генератор псевдовипадкових чисел, який можна у будь-який момент проініціалізувати початковим значенням і повторити згенеровану раніше послідовність

Недолік – цей метод не гарантує обхід усіх вільних комірок

10.25. Подвійне хешування

Подвійне хешування – схема з відкритою адресацією для уникання колізій, яка використовує два незалежні алгоритми хешування: перший використовується у випадку до виникнення колізії, другий – у випадку, коли виникає колізія.

Послідовність зондування з використанням подвійного хешування наступна: спочатку використовуємо перший алгоритм для розрахунку хеш-коду h1, якщо комірка зайнята, то для того ж самого значення ключа використовуємо другий алгоритм і розраховуємо хеш код h2, після чого здійснюємо зондування комірки h1 + h2, якщо комірка зайнята, то зондування здійснюється для комірки h1 + 2h2, далі h1 + 3h2 і т.д.

10.26. Вирішення конфліктів за допомогою зв’язування

Зв’язування – використання зв’язних списків для збереження значень у хеш-таблиці з однаковими хеш-кодами

10.27. Вирішення конфліктів за допомогою групування.

Групування – процес схожий до зв’язування, однак замість зв’язаних списків елементи з однаковими хеш-кодами поміщаються у спеціальні фіксовані області (корзини)

Хеш-таблиці на диску

Розміщення хеш-таблиці в області пам’яті з повільним доступом має свої особливості.

Зокрема, подібна задача виникає при реалізації БД (приклад: БД товарів у супермаркеті).

При реалізації подібної хеш-таблиці слід використовувати розширююче хешування


 

Список літератури

Назва Кількість примірників УДК
Основна    
1. Вирт Н. «Алгоритмы + Структуры данных = Программы». – М.Мир,1985.-406 с. ∞ (ел. варіант) 681.3.07
2. Макконелл Дж. Основы современных алгоритмов. 2-е изд./ Пер. с англ. – М.: Техносфера, 2004 – 368 с.   681.3.07
3. Ватсон К.С. C# - М.: Лори, 2005 – 862 с.   681.3.07
Додаткова    
4. Агуров П.В. C#. Сборник рецептов – СПб.:БХВ-Петербург, 2008. – 432 с.   681.3.07
5. Кнут Д. Искусство программирования для ЭВМ. Т.2. Получисленные методы. – М.: Издательский дом «Вильямс», 2000. – 832 с.   681.142.2
6. Кнут Д. Искусство программирования. Т.1. Основные алгоритмы. – М.: Издательский дом «Вильямс», 2005. – 720 с.   681.142.2
7. Кнут Д. Искусство программирования. Т.3. Сортировка и поиск. – М.: Издательский дом «Вильямс», 2005. – 824 с.   681.142.2
8. Макконелл С. Совершенный код. Мастер-класс / Пер. с англ. – М.: ИТД «Русская редакция»; СПб; Питер, 2005. – 896 с.   681.3.07
9. Уоррен Г. Алгоритмические трюки для программистов.: Пер. с англ. – М.: Изд. дом «Вильямс», 2003. – 288 с. ∞ (ел. варіант) 681.3.07
10. Павловская Т.А. C#. Программирование на языке высокого уровня. Учебник для вузов. – СПб.: Питер, 2007. – 432 с.   ∞ (ел. варіант) 681.3.07
11. Harris S., Ross J. Beginning Algorithms. – Wiley Publishing, 2005. – 591 p. ∞ (ел. варіант) 681.3.07
Методичні посібники викладачів УАБС НБУ
12. Економічна кібернетика. Алгоритмізація: Збірник завдань до розрахункової роботи. Для студентів ек. кіб. форми навчання: збірник задач. – Суми: УАБС НБУ. ∞ (ел. варіант) 681.3.07
13. Економічна кібернетика. Алгоритмізація: Приклад виконання розрахункової роботи Для студентів економ. спец. денної форми навчання. – Суми: УАБС НБУ. ∞ (ел. варіант) 681.3.07
         

 

<== предыдущая лекция | следующая лекция ==>
Введення до хешування | Занятие 1
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 502; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.