Другие схемы открытой адресации
Другие схемы открытой адресации
Хотя описанный класс хеш-таблиц был разработан для решения основной проблемы, возникающей при использовании схемы с открытой адресацией линейного зондирования (тенденции к кластеризации занятых ячеек), мы кратко рассмотрим несколько других схем с открытой адресацией.
Квадратичное зондирование
Первая из таких схем - квадратичное зондирование (quadratic probing). При использовании этого алгоритма контроль и предотвращение создания кластеров осуществляется путем проверки не следующей по порядку ячейки, а ячеек, которые расположены все дальше от исходной. Если первое зондирование оказывается безрезультатным, мы проверяем следующую ячейку. В случае неудачи этой попытки мы проверяем ячейку, которая расположена через четыре ячейки. Если и эта попытка неудачна, мы проверяем ячейку, расположенную через девять ячеек - и т.д., причем последующие зондирования выполняются для ячеек, расположенных через 16, 25, 36 и так далее ячеек. Этот алгоритм позволяет предотвратить образование кластеров, которые могут появляться в результате применения линейного зондирования, однако он может приводить и к ряду нежелательных проблем. Во-первых, если для многих ключей хеширование генерирует один и тот же индекс, все их последовательности зондирования должны будут выполняться вдоль одного и того же пути. В результате они образуют кластер, но такой, который кажется распределенным по хеш-таблице. Однако вторая проблема значительно серьезнее: квадратичное зондирование не гарантирует посещение всех ячеек. Максимум в чем можно быть уверенным, если размер таблицы равен простому числу, это в том, что квадратичное зондирование обеспечит посещение, по меньшей мере, половины ячеек хеш-таблицы. Таким образом, образом, можно говорить о выполнении задачи-минимум, но не задачи-максимум.
В этом легко убедиться. Начнем квадратичное зондирование с 0-й ячейки хеш-таблицы, содержащей 11 ячеек, и посмотрим, какие ячейки будут посещены при этом. Последовательность посещений выглядит следующим образом: 0, 1, 5, 3, 8, после чего зондирование снова начинается с ячейки 0. Мы никогда не посещаем ячейки 2, 4, 7, 9. По-моему, одной этой проблемы достаточно, чтобы в любом случае избегать применения квадратичного зондирования, хотя ее можно было бы избегнуть, не позволяя хеш-таблице заполняться более чем на половину.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Необходимость в 64-битовой адресации
Необходимость в 64-битовой адресации Возможности доступа к большим адресным пространствам требуются многим приложениям. Можно было бы привести множество примеров, аналогичных тем, которые перечислены ниже.• Приложения для обработки изображений. Системы, использующие
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице Что ж, скрытие и открытие вложенных списков, формирующих полосу навигации, в "содружестве" с библиотекой Ext Core реализуется весьма просто. Но работа над полосой навигации еще не
Глава 21 Схемы нападений
Глава 21 Схемы нападений Даная была дочерью Акрисия, которому предсказали, что он умрет от руки сына своей дочери. Поэтому Акрисий заточил Данаю в бронзовой комнате, вдали от всего мужского рода. Зевс, воспылавший страстью к Данае, проник в ее комнату через крышу в виде
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице
Выделение пункта полосы навигации, соответствующего открытой в данный момент Web-странице Что ж, скрытие и открытие вложенных списков, формирующих полосу навигации, в "содружестве" с библиотекой Ext Core реализуется весьма просто. Но работа над полосой навигации еще не
16.4. Система адресации данных
16.4. Система адресации данных Система адресации данных - это одна из самых существенных составных частей файловой системы. Именно система адресации позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске. В ext2fs система адресации
5.12 Примеры адресации
5.12 Примеры адресации В этом разделе мы познакомимся с несколькими примерами глобально уникальных адресов классов А, В и С. Позднее мы рассмотрим новый бесклассовый (classless) метод присваивания сетевых
3. Транзисторные схемы
3. Транзисторные схемы SPICE имеет встроенные модели для биполярных и полевых транзисторов. Эти модели сложнее, чем модели, используемые в традиционных курсах электроники. Обычно студенты изучают схемы смещения и схемы усиления отдельно. Такое построение материала
Логические схемы
Логические схемы Рабочая версия PSpice содержит более сотни логических устройств, доступных в коммерческой версии программного обеспечения. Имеется большинство логических схем серии 7400, триггеры, счетчики и т.п. Полная распечатка логических устройств демонстрационной
Анализ схемы
Анализ схемы Чтобы выполнить анализ и получить выходной файл, выберем PSpice, New Simulation Profile из главного меню. В окне New Simulation наберите имя rthrees, затем нажмите на кнопку Create. Появляется окно Simulation Settings с меню в верхней части (рис. 14.4). Выберите позицию Analysis в поле Analysis type: выберите
3. Способы адресации
3. Способы адресации Перечислим и затем рассмотрим особенности основных видов адресации операндов в памяти:1) прямую адресацию;2) косвенную базовую (регистровую) адресацию;3) косвенную базовую (регистровую) адресацию со смещением;4) косвенную индексную адресацию со
Операция косвенной адресации: *
Операция косвенной адресации: * Предположим, мы знаем, что в переменной ptr содержится ссылка на переменную bah. Тогда для доступа к значению этой переменной можно воспользоваться операцией "косвенной адресации" (*). (Не путайте эту унарную операцию косвенной адресации с
Скрипты схемы
Скрипты схемы В Firebird, как и во всех других системах управления базами данных SQL, вы создаете вашу базу данных и ее объекты (метаданные или схема базы данных), используя операторы из специализированного подмножества операторов SQL, называемого языком определения данных (Data
Схемы
Схемы Параметры рабочей среды хранятся в шести схемах:• User Preference Schemes (Пользовательские схемы) – пользовательские настройки, относящиеся к следующим областям рабочей среды:• Dialog Boxes and Palettes (Диалоговые окна и палитры);• Selection and Element Information (Выделенные объекты и сведения об
52. Способы адресации
52. Способы адресации Прямая адресацияЭто простейший вид адресации операнда в памяти, так как эффективный адрес содержится в самой команде и для его формирования не используется никаких дополнительных источников или регистров. Эффективный адрес берется
Световые схемы
Световые схемы Необязательно использовать при съемке множество разных источников света. Принцип «чем больше, тем лучше» не всегда справедлив. Как правило, простые схемы освещения наиболее удачны (рис. 5.14). Со сложной схемой освещения нужно не торопиться и как следует