Студопедия
rus | ua | other

Home Random lecture






СД типа хеш-файл.


Date: 2015-10-07; view: 429.


 

Осуществляется отображение n:1. Хеширование является реализацией вышерассмотренной идеи. Хеширование задается функцией:

Function h (key.Tk): 0..N;

При создании файла каждый элемент отмечается как пустой. Запись данных в файл производится следующим образом. Вычисляется значение функции h. Если элемент с вычисленным номером пуст, то данные сохраняются в этом элементе. В противном случае ищется первый справа пустой элемент. Если дошли до конца файла, то возвращаемся назад и продолжаем поиск. Записываем в первый пустой элемент.

Чтение из файла производится по ключу аналогично. Вычисляется значение функции h. Если элемент пуст, то нужного элемента в файле нет. В противном случае ключ этого элемента сравнивается с заданным и в случае совпадения – ключ найден. Если значения сравниваемых ключей различны, то начинаем последовательный просмотр следующих элементов до тех пор, пока не найдется первый пустой элемент или элемент с заданным ключом.

A = k mod N – функция хеширования (N – простое число)

[k mod (10000/100)]

h(k) = B + m[k mod (10 n/10 l)], где B и m – константы, n > l.

В качестве хеш-функции может быть использован полином. В таком случае ключ – значение данного полинома. Вначале вычисляется полином, а затем берется по модулю относительно переменной N.

 


<== previous lecture | next lecture ==>
СД типа индексно-последовательный файл. | Внешняя сортировка.
lektsiopedia.org - 2013 год. | Page generation: 1.103 s.