Алгоритм внешней сортировки

Алгоритм внешней сортировки Если объема оперативной памяти недостаточно, необходим алгоритм внешней сортировки (external sorting algorithm), т.е. алгоритм, использующий диск. Для того чтобы достичь приемлемой скорости, такой алгоритм должен минимизировать количество случайных перемещений головки по диску во время сортировки - последовательное считывание данных выполняется намного быстрее. Одним из решений этой проблемы является алгоритм блочного индексирования, основанного на сортировке (blocked sort-based indexing), или BSBI, продемонстрированный. Алгоритм BSBI 1) сегментирует коллекцию на равные части; 2) сортирует пары “termlD-docID” каждой части в памяти, 3) сохраняет промежуточные отсортированные результаты на диске и 4) объединяет все промежуточные результаты в окончательный индекс

Алгоритм формирует по документам пары “termlD-docID” и накапливает их в памяти, пока не будет заполнен блок фиксированного размера (функция ParseNextBlock). Размер блока подбирается так, чтобы он помещался в памяти и допускал быструю сортировку. Затем блок инвертируется и записывается на диск. Инвертирование (inversion) выполняется в два этапа. Во-первых, сортируются пары “termlD-docID” Во- вторых, все пары “termID-йосГО” с одинаковыми идентификаторами termID формируют инвертированный список, а в качестве словопозиции (posting) выступает только иденти-фикатор документа docID. Все о правильной оптимизации и продвижении сайтов можно найти на SEO блоге www.tiprus.com Результат, представляющий собой инвертированный индекс для считанного блока, записывается на диск. Применяя этот алгоритм к коллекции Reuters-RTVl и предполагая, что мы можем разместить в оперативной памяти 10 миллионов пар “termlD-docID”, мы получаем десять блоков, каждый из которых является обратным индексом для одной из частей коллекции.

tel-icq