Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМА БЫСТРОЙ СОРТИРОВКИ И АЛГОРИТМА СОРТИРОВКИ СЛИЯНИЕМ'

СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМА БЫСТРОЙ СОРТИРОВКИ И АЛГОРИТМА СОРТИРОВКИ СЛИЯНИЕМ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
85
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БЫСТРАЯ СОРТИРОВКА / СОРТИРОВКА СЛИЯНИЕМ / ВРЕМЕННАЯ СЛОЖНОСТЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Николаенко М.А., Иваницкий А.В., Гребенник О.Г.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМА БЫСТРОЙ СОРТИРОВКИ И АЛГОРИТМА СОРТИРОВКИ СЛИЯНИЕМ»

5. Магура М.И., Поиск и отбор персонала/М.:ООО « Онлайн журнал управление персоналом»,2014г. http://hr-portal.ru/tags/adaptaciya-personala

6. Каркуленко Н.А. Адаптация работников в новых условиях// Справочник кадровика - 2014г.-№ 6- http://www.pro-personal.ru/article/131701-podbor-rukovoditeley-srednego-zvena.

УДК 004.021

Николаенко М. А. студент 4 курса Иваницкий А.В. студент 4 курса Гребенник О. Г. студент 4 курса

институт инженерных технологий и естественных наук

Белгородский государственный национально исследовательский университет Научный руководитель: Чашин Ю.Г., к.т.н.

ФГАОУ НИУ БелГУ Россия, г. Белгород СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМА БЫСТРОЙ СОРТИРОВКИ И АЛГОРИТМА СОРТИРОВКИ СЛИЯНИЕМ Аннотация. Производится сравнительный анализ быстрой сортировки и сортировки слиянием и их пригодность в различных ситуациях. Ключевые слова: быстрая сортировка, сортировка слиянием, временная сложность.

Быстрая сортировка (qsort) - широко известный алгоритм сортировки, разработанный английским информатиком Чарльзом Хоаром во время его работы в МГУ в 1960 году

Один из самых быстрых известных универсальных алгоритмов сортировки массивов.

Допускает естественное распараллеливание (сортировка выделенных подмассивов в параллельно выполняющихся подпроцессах).

Допускает эффективную модификацию для сортировки по нескольким ключам (в частности — алгоритм Седжвика для сортировки строк): благодаря тому, что в процессе разделения автоматически выделяется отрезок элементов, равных опорному, этот отрезок можно сразу же сортировать по следующему ключу.

Работает на связных списках и других структурах с последовательным доступом, допускающих эффективный проход как от начала к концу, так и от конца к началу [1].

Характеристики сортировки:

1. Лучшее время: n * log n;

2. Среднее время: n* log n;

3. Худшее время: n2;

4. Затраты памяти: log n [2].

Сортировка слиянием (merge sort) - алгоритм сортировки, который упорядочивает элементы в определённом порядке.

Эта сортировка - хороший пример использования принципа «разделяй и властвуй». Сначала задача разбивается на несколько подзадач меньшего размера. Затем эти задачи решаются с помощью рекурсивного вызова или непосредственно, если их размер достаточно мал. Наконец, их решения комбинируются, и получается решение исходной задачи.

Работает даже на структурах данных последовательного доступа. Хорошо сочетается с подкачкой и кэшированием памяти. Неплохо работает в параллельном варианте: легко разбить задачи между процессорами поровну, но трудно сделать, что если один процессор задержится, остальные возьмут его работу на себя. Не имеет «трудных» входных данных [3].

Характеристики сортировки:

1. Лучшее время: n * log n;

2. Среднее время: n* log n;

3. Худшее время: n* log n;

4. Затраты памяти: n [2].

Произведем анализ данных алгоритмов и построим график роста временной сложности. Алгоритм быстрой сортировки, несмотря на своё название в худшем случае даёт время n2, что на входном массиве свыше 100 000 элементов будет значительно хуже, чем n * log n у сортировки слиянием. Используя таблицу скорости роста основных функций несложно вычислить, что на размере массива в 1 000 000 элементов, время выполнения будет различаться в 50 000 раз, а с увеличением размерности ещё больше [4].

На рис. 1 отображены графики роста количества требуемых операций в зависимости от количества входных элементов.

Рис.1 - Скорость роста основных функций [2].

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

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

Однако, несмотря на очевидные преимущества, у сортировки слиянием присутствует ощутимый недостаток, проявляющийся при работе с массивами, а не списками - необходимость во вспомогательном буфере размерностью n [4].

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

• объектами сортировки являются связные списки;

• критичным является время выполнения даже в худшем случае;

• критичным является устойчивость сортировки;

• затраты памяти несущественны (для случаев сортировки массивов).

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

Список литературы 1. Быстрая сортировка, [Электронный ресурс] - Электрон. текстовые дан., режим доступа - https://ru.wikipedia.org/wiki/Быстрая_сортировка, свободный;

2. Знай сложности алгоритмов, [Электронный ресурс] - Электрон. текстовые дан., режим доступа - http://habrahabr.ru/post/188010/, свободный;

3. Сортировка слиянием, [Электронный ресурс] - Электрон. текстовые дан., режим доступа - https://ru.wikipedia.org/wiki/Сортировка_слиянием, свободный;

4. Скиена С. Алгоритмы. Руководство по разработке [Текст] / Скиена С. 2-е издание -Санкт-Петербург: БХВ-Петербург. 2014 г. 720с.

УДК 004.49

Николаенко М. А. студент 4 курса Иваницкий А.В. студент 4 курса Гребенник О. Г. студент 4 курса

институт инженерных технологий и естественных наук

Белгородский государственный национально исследовательский университет Научный руководитель: Чашин Ю.Г., к.т.н.

ФГАОУ НИУ БелГУ Россия, г. Белгород СТАТИСТИЧЕСКИЙ АНАЛИЗ ХАКЕРСКИХ АТАК РУССКОГО' СЕГМЕНТА ИНТЕРНЕТА ЗА ПЕРВУЮ ПОЛОВИНУ 2015 ГОДА Аннотация. В статье изучается и анализируется статистика хакерских атак русского сегмента интернета за первую половину 2015 года. Также рассматривается распределение DDOS-атак по областям интернет -коммерции и интернет - ресурсов. Ключевые слова: хакерские атаки, DDOS-атаки.

Хакерские атаки похищение информации, установление контроля над удаленной системой (компьютером) или выведение систем и компьютеров

i Надоели баннеры? Вы всегда можете отключить рекламу.