Параллельные методы сортировки | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 января, печатный экземпляр отправим 8 января.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №7 (141) февраль 2017 г.

Дата публикации: 20.02.2017

Статья просмотрена: 546 раз

Библиографическое описание:

Иванов, К. К. Параллельные методы сортировки / К. К. Иванов, С. А. Раздобудько, Р. И. Ковалев. — Текст : непосредственный // Молодой ученый. — 2017. — № 7 (141). — С. 15-16. — URL: https://moluch.ru/archive/141/39881/ (дата обращения: 22.12.2024).



Статья посвящена использованию параллельных методов в решении одной из типовых проблем обработки данных — сортировке.

Ключевые слова: сортировка, параллелизм, пузырьковая сортировка, сортировка включением, сортировка слиянием, сортировка Шелла, быстрая сортировка

Для решения многих прикладных задач не годятся неупорядоченные наборы данных. Перед началом работы их нужно обязательно обработать, проведя сортировку, которая чаще всего заключается в упорядочивании элементов по возрастанию или убыванию.

Существует большое количество алгоритмов сортировки. Каждый из них предлагает свой подход к решению задачи;", однако это различие заключается лишь в том, как именно сравнивать элементы в процессе сортировки. Наиболее простыми методами являются, например, пузырьковая сортировка и сортировка включением. Их трудоемкость (далее в настоящей работе количество необходимых для сортировки операций будет обозначаться через латинскую букву T, а число элементов в неупорядоченном наборе данных — через букву n) измеряется квадратичной зависимостью числа операций, необходимых для проведения сортировки, от числа элементов неупорядоченного набора данных, то есть T ~ n2. Для куда более эффективных и быстрых алгоритмов, таких, как сортировка слиянием, сортировка Шелла или быстрая сортировка, число операций, необходимых для проведения сортировки, уже зависит от числа элементов неупорядоченного набора данных через логарифм — T ~ n * log2 n. Именно это выражение считается минимальной возможным числом операций сортировки (в расчет не берутся частные случаи, когда, например, для выполнения сортировки необходимо всего лишь поменять местами два элемента).

Так как преодолеть границу в n * log2 n последовательным алгоритмом не представляется возможным, то задача по ускорению процесса сортировки ложится на плечи новых параллельных методов сортировки, которые, на самом деле, являются модифицированными последовательными методами сортировки, но с использованием нескольких, как минимум двух, вычислительных элементов.

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

Основной операцией для параллельных методов сортировки являются так называемая операция «compare-split», которая на русский язык переводится как «сравнить-разделить». Ее суть заключается в том, что сначала производится сортировки внутри выделенных блоков данных, после чего блоки делятся на пары, в рамках каждой из которых происходит слияние блоков. После этого в новом блоке производится сортировка, эффективность которой после проведенной сортировки в блоках значительно превосходит аналогичную процедуру сортировки без разделения на блоки — значение 2 * (n/p) * log2 (n/p) + 2*(n/p) меньше значения (2n/p) * log2 (2n/p).

Одним из самых простых методов сортировки является пузырьковая сортировка. На практике еще практически не применяют, но он крайне важен в учебных целях. Алгоритм пузырьковой сортировки заключается в следующем: происходит последовательный проход по набору значений, в ходе которого сравниваются пары смежных значений. Например, если массив необходимо упорядочить по возрастанию, то при сравнении будет восстанавливаться такой порядок, чтобы значение слева было больше значения справа. В итоге после первой итерации наименьший элемент займет последнюю позицию. После этот элемент уже не будет участвовать в сортировке. При использовании параллельного метода в данном алгоритме и использовании двух потоков время выполнения сортировки уменьшается примерно в полтора раза, а при использовании четырех потоков — почти в три раза [1].

Еще одним методом сортировки является сортировка Шелла. Данный алгоритм является очень эффективным и быстрым, и его время сортировки при использовании последовательного метода измеряется как раз выражением T ~ n * log2 n. Суть сортировки Шелла состоит в том, что на начальном этапе сравниваются не смежные элементы, а элементы, находящиеся на значительном удалении друг от друга. Это позволяет намного быстрее перетащить, например, элементы с более высокими значениями к началу массива в задаче на возрастание. При использовании параллельного метода в данном алгоритме и использовании двух потоков время выполнения сортировки уменьшается примерно в 1,65 раза, а при использовании четырех потоков — примерно в 2,1 раза [1].

Таким образом, использование параллельных методов сортировки в значительной степени повышает эффективность работы алгоритмов сортировки, что делает их использование в настоящее время чуть ли необязательным, когда речь заходит об упорядочивании данных.

Литература:

  1. Гергель, В. П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем: Учебник. / В. П. Гергель. — М.: Издательство Московского университета, 2010. — 544 с., илл.
Основные термины (генерируются автоматически): методов сортировки, параллельных методов сортировки, выполнения сортировки, числа элементов неупорядоченного, элементов неупорядоченного набора, алгоритмов сортировки, проведения сортировки, неупорядоченного набора данных, вычислительных элементов, количество алгоритмов сортировки, методов сортировки неупорядоченные, числом операций сортировки, процессе сортировки, последовательными методами сортировки, сортировки операций, простых методов сортировки, ускорению процесса сортировки, аналогичную процедуру сортировки, методы внутренней сортировки, работы алгоритмов сортировки.


Похожие статьи

Анализ эффективности алгоритмов сортировки и вcтроенных реализаций на примере языка программирования Java

В данной статье показана значительная роль проведения анализа работы алгоритмов сортировки на массивах данных различной размерности. Рассмотрены актуальные алгоритмы и стандартные реализации сортировки в языке программирования Java.

Критерии маршрутизации сети

В статье рассматриваются задачи, связанные с маршрутизацией. Приведены основные шаги алгоритма оптимизации сети.

Применение нейронных сетей для графологического анализа почерка

В данной статье проводится исследование системы графологического анализа почерка, основанной на применении нейронных сетей.

Сравнение работы алгоритмов кластеризации

Применение векторизации слов для нечеткого поиска

В этой статье рассматриваются вопросы выполнения нечеткого поиска, извлечение семантики слов и применение векторной модели для расширения поиска. Изложены общие идеи при решении поставленной задачи, приводятся алгоритмы с их последующей реализацией и...

Определение наилучших вероятностей мутации генетического алгоритма в сетях с двухфазной маршрутизацией

Рассматривается влияние степени мутации генетического алгоритма на его производительность, вычисляется оптимальное значение параметров мутации для хромосом в условиях использования генетического алгоритма в сетях с двухфазной маршрутизацией.

Определение предпочтительного числа кластеров. Момент остановки метода одиночной связи

Кластерный анализ является одним из основных методов предварительной классификации большого количества информации. Актуальной задачей остаётся определение момента остановки процесса кластеризации. Можно рассмотреть кластерный анализ данных методом «о...

Анализ нечетких методов сравнения при работе с несколькими источниками данных

При сопоставлении данных, собранных из различных источников, появляется сложность, связанная с возможными различиями формообразования в наименованиях и возникающих ошибках при ручном вводе данных. Были рассмотрены методы нечёткого сравнения строк.

Обзор решений в области распределенных вычислений

В статье предлагается подход к классификации систем распределенных вычислений и обзор представителей разных классов.

Уплотнение структуры данных префиксного дерева на основе статистической модели

В статье предложен алгоритм уплотнения структуры данных префиксного дерева, представленной в виде разреженной матрицы, которая используется при обработке информации методом лучевого поиска. Алгоритм позволяет уменьшить время, затрачиваемое на процесс...

Похожие статьи

Анализ эффективности алгоритмов сортировки и вcтроенных реализаций на примере языка программирования Java

В данной статье показана значительная роль проведения анализа работы алгоритмов сортировки на массивах данных различной размерности. Рассмотрены актуальные алгоритмы и стандартные реализации сортировки в языке программирования Java.

Критерии маршрутизации сети

В статье рассматриваются задачи, связанные с маршрутизацией. Приведены основные шаги алгоритма оптимизации сети.

Применение нейронных сетей для графологического анализа почерка

В данной статье проводится исследование системы графологического анализа почерка, основанной на применении нейронных сетей.

Сравнение работы алгоритмов кластеризации

Применение векторизации слов для нечеткого поиска

В этой статье рассматриваются вопросы выполнения нечеткого поиска, извлечение семантики слов и применение векторной модели для расширения поиска. Изложены общие идеи при решении поставленной задачи, приводятся алгоритмы с их последующей реализацией и...

Определение наилучших вероятностей мутации генетического алгоритма в сетях с двухфазной маршрутизацией

Рассматривается влияние степени мутации генетического алгоритма на его производительность, вычисляется оптимальное значение параметров мутации для хромосом в условиях использования генетического алгоритма в сетях с двухфазной маршрутизацией.

Определение предпочтительного числа кластеров. Момент остановки метода одиночной связи

Кластерный анализ является одним из основных методов предварительной классификации большого количества информации. Актуальной задачей остаётся определение момента остановки процесса кластеризации. Можно рассмотреть кластерный анализ данных методом «о...

Анализ нечетких методов сравнения при работе с несколькими источниками данных

При сопоставлении данных, собранных из различных источников, появляется сложность, связанная с возможными различиями формообразования в наименованиях и возникающих ошибках при ручном вводе данных. Были рассмотрены методы нечёткого сравнения строк.

Обзор решений в области распределенных вычислений

В статье предлагается подход к классификации систем распределенных вычислений и обзор представителей разных классов.

Уплотнение структуры данных префиксного дерева на основе статистической модели

В статье предложен алгоритм уплотнения структуры данных префиксного дерева, представленной в виде разреженной матрицы, которая используется при обработке информации методом лучевого поиска. Алгоритм позволяет уменьшить время, затрачиваемое на процесс...

Задать вопрос