Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры и алгоритмы обработки данных.doc
Скачиваний:
348
Добавлен:
12.03.2015
Размер:
1.81 Mб
Скачать

4.5. Контрольные вопросы по теме

  1. В чем заключается метод хеш-поиска?

  2. Для чего используется хеш-функция и какие к ней предъявляются требования?

  3. Что такое хеш-таблица и как она используется?

  4. Как по трудоемкости соотносятся между собой основные методы поиска (полный перебор, двоичный поиск, хеш-поиск)?

  5. Как с помощью простейшей хеш-функции находится расположение в таблице строковых ключей?

  6. Какие проблемы могут возникать при построении хеш-таблиц с произвольными наборами ключей?

  7. В каких ситуациях можно построить бесконфликтную хеш-таблицу?

  8. Где на практике и почему можно использовать бесконфликтные хеш-таблицы?

  9. Что такое открытое хеширование и для чего оно применяется?

  10. Какие структуры данных используются для реализации открытого хеширования?

  11. Какие шаги выполняет алгоритм построения хеш-таблицы при открытом хешировании?

  12. Какие шаги выполняет алгоритм поиска в хеш-таблице при открытом хешировании?

  13. Какие проблемы могут возникать при использовании открытого хеширования?

  14. Как влияет размер хеш-таблицы на эффективность открытого хеширования?

  15. Что такое внутреннее хеширование и для чего оно применяется?

  16. Какие правила можно использовать для поиска свободных ячеек при внутреннем хешировании?

  17. Какие шаги выполняет алгоритм построения хеш-таблицы при внутреннем хешировании?

  18. Какие шаги выполняет алгоритм поиска в хеш-таблице при внутреннем хешировании?

  19. Как влияет размер хеш-таблицы на эффективность внутреннего хеширования?

  20. В каких задачах НЕ следует применять метод хеш-поиска?

Тема 5. Внешний поиск и внешняя сортировка

5.1. Особенности обработки больших наборов данных

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

Решение подобных задач неизбежно связано с учетом особенностей взаимодействия ОП и внешней памяти. Главное их отличие – время доступа. Поскольку доступ к внешней памяти выполняетсязначительно медленнее, то главным критерием при разработке алгоритмов становится не количество элементарных операций с расположенными в ОП данными, ачисло обращенийк внешней памяти. Методы внешнего поиска и сортировки должны быть такими, чтобы время обращения к внешней памяти было как можно меньше.

В свою очередь, это требует четкого понимания особенностей хранения информации во внешней памяти. Как известно, для хранения данных на диске создаются элементарные физические единицы (секторы), которые на логическом уровне объединяются в более крупные кластеры. Размер кластера определяется типом операционной системы. За одно обращение к диску считывается содержимое сразу всего кластера. Это связано с тем, что при таком подходе минимизируется время поиска необходимых секторов на диске, включающее в себя время на подвод считывающей головки к нужной дорожке и время на поворот диска к нужному сектору. Считываемые с диска наборы байтов помещаются в буферную область памяти. Отсюда можно сделать вывод, что методы поиска и сортировки должны быть построены таким образом, чтобы можно было обрабатывать сразу целую группу элементов. Нельзя читать данные из внешней памяти в ОП по одному элементу – должна быть считана целая группа логически связанных элементов, которая потом обрабатывается алгоритмом и, возможно, приводит к необходимости чтения другой группы элементов.

На этих принципах построен ряд методов внешнего поиска и сортировки. Среди них одним из наиболее известных методов поиска является метод Б-деревьев (B-tree).