Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Быстрая сортировка. Сортировка вставками

Сортировка вставками.

Сортировка выбором.

 

1. Общее быстродействие O(n^2).

2. Сортировка происходит на месте.

3. Неустойчивая.

4. Поведение неестественное.

Идея метода:

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

A[1..N] - сортируемый массив из n элементов.

for (i=1; i<N; i++) Hайти наименьший из элементов i..N и поменять его местами с i-м.

 

1. Общее быстродействие O(n^2). Но ввиду простоты реализации, является самой быстрой для малых массивов и списков (менее 20 элементов). В виду своих особенностей, алгоритм хорош для частично отсортированных данных.

2. Сортировка происходит на месте.

3. Устойчивая.

4. Поведение естественное.

Идея метода:

Сортировка простыми вставками в чем-то похожа на "пузырек" или "выбор". Аналогичным образом делаются проходы по части массива, и аналогичным же образом в его начале "вырастает" отсортированная последовательность. Однако в сортировке пузырьком или выбором можно было четко заявить, что на i-м шаге элементы a[0]...a[i] стоят на правильных местах и никуда более не переместятся. Здесь же хотя последовательность a[0]...a[i] упорядочена, но по ходу алгоритма в нее могут вставляться новые элементы.

 

1. Общее быстродействие O(n*log(n)). Наиболее быстрая сортировка для неупорядоченных массивов с 50 и более элементами.

2. Требует дополнительной памяти.

3. Неустойчивая.

5. Поведение неестественное.

Метод основан на подходе "Разделяй и властвуй".

Быструю сортировку нетрудно реализовать, она хорошо работает на различных видах входных данных и во многих случаях требует меньше затрат ресурсов по сравнению с другими методами сортировки. На выполнение сортировки N элементов в среднем затрачивается время, пропорциональное N log N и для него характерны исключительно короткие внутренние циклы.

Его недостатком является то, что он неустойчив, для его выполнения в наихудшем случае требуется N2 операций.

Наиболее быстрой является сортировка для неупорядоченных массивов с 50 и более элементами.


Идея метода:

В массиве выбирается опорный элемент a[i], затем сортируемый массив делится на две части, которые затем сортируются независимо друг от друга. Точное положение точки деления зависит от исходного порядка элементов в исходном массиве. Основная идея метода заключается в процессе разбиения массива, который переупорядочивает массив таким образом, что выполняются следующие условия:

1. Элемент a[i] для некоторого i занимает свою окончательную позицию в массиве.

2. Ни один из элементов a[i],..., a[i-l] не превышает a[i].

3. Ни один из элементов a[i+l],..., а[r] не является меньшим a[i].

Разбиение осуществляется с использованием следующей стратегии:

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

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

<== предыдущая лекция | следующая лекция ==>
Пузырьковая сортировка | Пирамидальная сортировка
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 552; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.