Аноним

Сортировка без явного задания параметров кэша: различия между версиями

Материал из WEGA
м
нет описания правки
(Новая страница: «== Ключевые слова и синонимы == Сортировка воронкой == Постановка задачи == Задача сортиров…»)
 
мНет описания правки
Строка 28: Строка 28:
(1) Рекурсия верхнего уровня, которая разбивает входной массив на N1/3 последовательностей размера N2/3, рекурсивно выполняет сортировку воронкой этих последовательностей и затем сливает полученные подпоследовательности при помощи алгоритма N1/3-слияния.
(1) Рекурсия верхнего уровня, которая разбивает входной массив на N1/3 последовательностей размера N2/3, рекурсивно выполняет сортировку воронкой этих последовательностей и затем сливает полученные подпоследовательности при помощи алгоритма N1/3-слияния.


(2) Алгоритм k-слияния определяется рекурсивным образом. Он выполняет бинарное слияние k входных последовательностей согласно продуманному графику с соответствующим рекурсивным расположением данных в памяти с использованием буферов для хранения приостановленных процессов слияния (см. рис. 1). Были выполнены два последовательных упрощения без ухудшения асимптотического количества переносов блоков памяти. В работе [3] было доказано, что бинарное слияние может выполняться «ленивым» образом, упрощая планирование слияния. В работе [5] было замечено, что рекурсовное расположение элементов k-слияния не является обязательным. Достаточно того, чтобы элемент k-слияния хранился в последовательном массиве, т.е. буферы могут располагаться в произвольном порядке, что упрощает алгоритм сборки для k-слияния.
(2) Алгоритм k-слияния определяется рекурсивным образом. Он выполняет бинарное слияние k входных последовательностей согласно продуманному графику с соответствующим рекурсивным расположением данных в памяти с использованием буферов для хранения приостановленных процессов слияния (см. рис. 1). Были выполнены два последовательных упрощения без ухудшения асимптотического количества переносов блоков памяти. В работе [3] было доказано, что бинарное слияние может выполняться «ленивым» образом, упрощая планирование слияния. В работе [5] было замечено, что рекурсивное расположение элементов k-слияния не является обязательным. Достаточно того, чтобы элемент k-слияния хранился в последовательном массиве, т.е. буферы могут располагаться в произвольном порядке, что упрощает алгоритм сборки для k-слияния.


Сортировка без явного задания параметров кэша, рис. 1
Сортировка без явного задания параметров кэша, рис. 1
Строка 50: Строка 50:




Для родственной задачи перестановки массива следующая теорема утверждает, что для всех возможных предположений о высоте кэша B < Ms не существует алгоритма без явного задания параметров кэша с границей количества переносов блоков (даже для среднего случая), оебспечивающего нижнюю границу для наихудшего случая в модели ввода-вывода.
Для родственной задачи перестановки массива следующая теорема утверждает, что для всех возможных предположений о высоте кэша B < Ms не существует алгоритма без явного задания параметров кэша с границей количества переносов блоков (даже для среднего случая), обеспечивающего нижнюю границу для наихудшего случая в модели ввода-вывода.




Строка 59: Строка 59:




Бродаль и Фагерберг [3] показали, как модифицировать ленивый алгоритм сортировки воронкой без явного задания параметров кэша для решения некоторых задач вычислительной геометрии, включая пересечение ортогональных проекций отрезков прямых, нахождение всех ближайших соседей, задача 3D maxima и пакетные ортогональные запросы диапазона. Все эти задачи могут быть решены при помощи вычислительного процесса, очень похожего на бинарную сортировку слиянием с дополнительными настройками в зависимости от задачи. Данная общая схема решения задач вычислительнйо геометрии носит название распределенного сметания.
Бродаль и Фагерберг [3] показали, как модифицировать ленивый алгоритм сортировки воронкой без явного задания параметров кэша для решения некоторых задач вычислительной геометрии, включая пересечение ортогональных проекций отрезков прямых, нахождение всех ближайших соседей, задача 3D maxima и пакетные ортогональные запросы диапазона. Все эти задачи могут быть решены при помощи вычислительного процесса, очень похожего на бинарную сортировку слиянием с дополнительными настройками в зависимости от задачи. Данная общая схема решения задач вычислительной геометрии носит название распределенного сметания.


== Открытые вопросы ==
== Открытые вопросы ==
4446

правок