110 likes | 277 Vues
Хеш- функции. 1. Постановка на задачата. Магазин с 100 000 брой стоки. Подреждаме стоките в таблица със следните колони: номер на стока, име, единична цена и налично количество. Да се извършат следните операции: Добавяне на нова стока; Изтриване на стока от таблицата;
E N D
1. Постановка на задачата • Магазин с 100 000 брой стоки. • Подреждаме стоките в таблица със следните колони: номер на стока, име, единична цена и налично количество. • Да се извършат следните операции: • Добавяне на нова стока; • Изтриване на стока от таблицата; • Промяната на цената на стоката; • Промяна на количеството на стоката; • Справка (търсене на информация) за една стока или групи от стоки.
2. Код на таблицата • Общ вид на кода: XYZxyz, където XYZ е низ от три латински букви (малки или големи- общия им брой е 52), а xyz е трицифрено число. • Нека К е множеството на всички низове с тази структура. Общия им брой е |K|=52.52.52.1000=140 608 000. • Примери за такива кодове: ABC123или pqr789.
3. Анализ на подредена и неподредена таблицитаблицата • Таблицата е неподредена- достъпът на елементите се извършва последователно (неефективен). • Таблицата е подредена по нарастващ ред на ключовете- достъпът на елементите се извършва директно. • Проблем при подредената таблица- поддържане на наредбата.
4. Метод на наредбата • Има различни решения: • Добавяне на нова таблица, наречена индекс, съдържаща информация за адресите (позициите) на стоките в таблицата. • Ключът на стоката да се трансформира в адрес (позиция) от таблицата.
5. Хеш-функции • Функция, която трансформира ключ в адрес, се нарича хеш- функция. • Задача: дадени са множествата А и В, за които се знае, че |A| е по- голямо от |B|. Търси се съответната хеш- функция h:A→B.
6. Пояснение на задачата • А е множеството от възможните ключове в таблицата К, а В е множеството от естествените числа в инервала [0, 99 999]. • Функцията не е инективна, а това означава, че групи от много елементи на К ще се изобразяват в едни и същи числа, принадлежащи на интервала [0, 99 999].
7. Хеш- таблица • Таблица, на която достъпът до елементите се извършва чрез хеш- функция, се нарича хеш- таблица.