рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Хешовані таблиці та функції хешування

Хешовані таблиці та функції хешування - раздел Образование, ОПЕРАЦІЇ ЛОГІЧНОГО РІВНЯ Як Відзначалося Вище, У Кожній Реальній Таблиці Фактична Множина Ключів Є ...

Як відзначалося вище, у кожній реальній таблиці фактична множина ключів є лише невеликою підмножиною множини всіх теоретично можливих ключів. З міркувань економії пам'яті доцільно призначати розмір простору записів рівним розміру фактичної множини записів або незначно переважаючим його. У цьому випадку необхідно мати деяку функцію, що забезпечує відображення точки з простору ключів у точку в просторі записів, тобто, перетворення ключа на адресу запису:

r = H(k),

де: r – адреса запису, k – ключ.

Така функція H називається функцією хешування (інші її назви – функція перемішування, функція рандомізації). В нашому випадку дані організовані в пам’яті як массив. Тому дія H– функції полягає в перетворенні ключів в індекси масиву. Звідси ще одна назва методу – перетворення ключів.

При спробі відображення точок з деякого широкого простору у вузьке неминучі ситуації, коли різні точки у вихідному просторі відобразяться в ту саму точку в цільовому просторі (див. рис. 5.3). Ситуація, при якій різні ключі відображаються в ту саму адресу запису, називається колізією чи переповненням, а такі ключі називаються синонімами.

Якщо функція H, що перетворює ключ на адресу, може породжувати колізії, то однозначної зворотної функції:

k = H'(r),

яка дозволяє відновити ключ за відомою адресою, існувати не може. Тому ключ повинен обов'язково входити до складу запису хешованої таблиці як один з її полів.

 

 
 

 


Рис. 5.3. Колізія. Точки А, В, С відображаються в точку О

 

До функції хешування в загальному випадку пред'являються наступні вимоги:

– повинна забезпечувати рівномірний розподіл відображень фактичних ключів за простором записів;

– повинна породжувати якнайменше колізій для даної фактичної множини записів;

– не повинна відображати будь-який зв'язок між значеннями ключів у зв'язок між значеннями адрес;

– повинна бути простою і швидкою для обчислення.

У літературі мається досить вичерпний огляд і аналіз застосовуваних на практиці функцій хешування, розглянемо найбільш прості з них.

Ділення за модулем. Це найпростіша функція хешування, полягає в діленні числового значення ключа на розмір простору запису. Результат інтерпретується як адреса запису. Хоча ця функція і застосовується у всіх прикладах даного розділу, що приводяться нижче, варто мати на увазі, що така функція погано відповідає першим трьом вимогам до функції хешування і сама по собі може бути застосована лише в дуже обмеженому діапазоні реальних задач. Однак, операція ділення за модулем звичайно застосовується як останній крок у більш складних функціях хешування, забезпечуючи приведення результату до розміру простору записів.

Функція середини квадрата. Значення ключа перетворюється в число, це число потім підноситься в квадрат, з нього вибираються кілька середніх цифр та інтерпретуються як її адреса.

Функція згортання. Цифрове представлення ключа розбивається на частини, кожна з яких має довжину, рівну довжині необхідної адреси. Над частинами здійснюються будь-які арифметичні поразрядні або логічні операції, результат яких інтерпретується як адреса. Наприклад, для порівняно невеликих таблиць із ключами, що є символьними рядками, непогані результати дає функція хешування, у якій адреса запису визначається в результаті додавання кодів символів, що складають рядок-ключ.

Функція перетворення системи обчислення. Ключ, записаний як число в деякій системі обчислення P, інтерпретується як число в системі обчислення Q, причому Q>P. Частіше вибирають Q=P+1. Це число переводиться із системи Q назад у систему P, приводиться до розміру простору записів і інтерпретується як адреса.

 

– Конец работы –

Эта тема принадлежит разделу:

ОПЕРАЦІЇ ЛОГІЧНОГО РІВНЯ

ОПЕРАЦІЇ ЛОГІЧНОГО РІВНЯ... НАД СТАТИЧНИМИ І СТРУКТУРАМИ R...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Хешовані таблиці та функції хешування

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

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

Пошук у таблиці
  Пошук у масиві іноді називають пошуком у таблиці, якщо ключ сам є інтегрованим об'єктом, таким як масив чисел чи символів. Часто зустрічається саме останній випадок, коли масиви сим

Прямий пошук рядка в тексті
  Часто доводиться зіштовхуватися зі специфічним пошуком, так названим пошуком рядка в тексті. Його можна визначити таким способом. Нехай заданий масив s з

КМП-алгоритм пошуку рядка в тексті
  У 1970 р. Д. Кнут, Дж. Морріс і В. Пратт запропонували алгоритм пошуку рядка в тексті, так званий КМП-алгоритм або КМП-пошук, фактично потребуючий тільки N порівнян

БМ-алгоритм пошуку рядка в тексті
Схема КМП-пошуку дає справжній виграш тільки тоді, коли при порівнянні символів до розбіжності було деяке число збігів (>1). Лише в цьому випадку образ зміщується більш ніж на одиницю. На жаль,

Таблиці прямого доступу
  Найпростішою організацією таблиці, що забезпечує ідеально швидкий пошук, є таблиця прямого доступу. У такій таблиці ключ є адресою запису в таблиці або може бути перетворений на адр

Таблиці з довідниками
  Одним із способів усунення недоліку, властивого таблицям прямого доступу, який полягає в тому, що вони вимагають пам'ять значних розмірів, є метод довідників. Основна табли

Проблема колізій у хешованих таблицях
  Колізії (друга назва - конфлікт) – основна проблема для хешованих таблиць. Вдало підібрана функція хешування може мінімізувати число колізій, але не може гарантувати їхньої повної в

Сортування
  Для самого загального випадку задача сортування може формулюватися так: мається деяка неупорядкована вхідна множина ключів, необхідно одержати вихідну множину тих же ключів, упорядк

Сортування вибіркою
  Сортування простою вибіркою. Даний метод реалізує практично "дослівно" сформульовану вище стратегію вибірки. Порядок алгоритму простої вибірки – O(N2

Сортування включенням
Сортування простими вставками. Цей метод – "дослівна" реалізація стратегії включення. У програмному прикладі 5.19 наведена підпрограма сортування простими вставками.

Сортування розподілом
  Порозрядне цифрове сортування. Алгоритм вимагає представлення ключів сортованої послідовності у вигляді чисел у деякій системі обчислення P. Число

Сортування злиттям
  Алгоритми сортувань злиттям, як правило, мають порядок O(N*log(N)), але відрізняються від інших алгоритмів більшою складністю і вимагають великого числа пересилань. Алгоритми злиття

Порівняння алгоритмів сортування масивів
Закінчуючи огляд методів сортування, порівняємо їх ефективність. В таблиці 5.3 подано дані (у секундах) для упорядкування довільного, упорядкованого й упорядкованого в зворотному порядку масивів з

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги