D-ПОСЛЕДОВАТЕЛЬНОСТИ В БЫСТРОЙ СОРТИРОВКЕ ХОАРА
Рассмотрены вопросы формирования длительных по количеству компьютерных операций D-последовательностей для определения скоростных свойств быстрой сортировки Хоара на одномерных массивах целочисленной информации.
Авторы
Тэги
Тематические рубрики
Предметные рубрики
В этом же номере:
Резюме по документу**
Д е о н
D-ПОСЛЕДОВАТЕЛЬНОСТИ В БЫСТРОЙ
СОРТИРОВКЕ ХОАРА
Рассмотрены вопросы формирования длительных по количеству
компьютерных операций D-последовательностей для определения
скоростных свойств быстрой сортировки Хоара на одномерных
массивах целочисленной информации. <...> Алгоритм быстрой сортировки Хоара относится к группе сложных
методов упорядочивания массивов вместе с методом слияния,
алгоритмом Шелла, методами древовидных сортировок. <...> Для больших
массивов все они превосходят по быстродействию простые методы
минимакса, перестановки, парных сравнений, сдвига и вставки. <...> Формульный
анализ количества выполняемых операций включает минимальные
и максимальные оценки. <...> Максимальное количество операций
в быстрой сортировке Хоара дают длительные по числу операций
D-последовательности исходных данных, подлежащих сортировке. <...> Назовем элемент массива разделяющим,
если слева от него находятся элементы с меньшими или равными
значениями. <...> Ниже представлена программа DH01, в которой функция HoarePosPrint(
) определяет позицию разделяющего элемента и предоставляет
распечатки дополнительной информации по ходу поиска:
// Program DH01 (Win32)
// Разделяющий элемент в быстрой сортировке Хоара
#include <conio.h>
92
// _getch
ISSN 0236-3933. <...> Для определения
количества операций, выполняемых в функции HoarePosPrint( ), необходимо
подсчитать количество итераций, выполняемых в вечном цикле
при поиске индекса разделяющего элемента. <...> Для этого необходимо
выполнить программу DH01 в различных вариантах представления
исходного массива. <...> Интерес представляют последовательности элементов,
которые дают минимальное и максимальное число итераций в
вечном цикле. <...> В качестве примера ниже показана последовательность
с одинаковыми элементами:
5 5 5 5 5
В этой последовательности одна итерация вечного цикла, поскольку
отсутствует необходимость в перестановке и упорядочивать нечего. <...> В следующей последовательности на правой грани находится элемент
с разделяющим значением <...>
** - вычисляется автоматически, возможны погрешности
Похожие документы: