русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Эффективность алгоритма сортировки прямого выбора


Дата добавления: 2013-12-23; просмотров: 2244; Нарушение авторских прав


 

Число сравнений ключей c не зависит от начального порядка ключей, так что поведение этого метода менее естественно, чем поведение прямого включения. При любом расположении ключей c=n(n-1)/2, а порядок числа сравнений, таким образом, о(n2). Число перестановок минимально мmin=3(n-1) в случае изначально упорядоченных ключей и максимально, мmax=3(n-1)+с, если первоначально ключи располагались в обратном порядке, порядок о(n2). В худшем случае сортировка прямым выбором дает порядок n2, как для числа сравнений, так и для числа перемещений.


Сортировка прямого обмена. Её эффективность

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

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

Отсортируем по возрастанию методом прямого обмена (табл. 12.1) последовательность элементов: 10, 3, 11, 8, 2, 15, 44, 9.

Таблица 12.1

Принцип работы сортировки прямым выбором

Шаг Готовая последовательность Исходная последовательность
  10, 3, 11, 8, 2, 15, 44, 9 Перестановка 44 и 9
10, 3, 11, 8, 2, 15, 9, 44 Перестановка 15 и 9
10, 3, 11, 8, 2, 9, 15, 44 Перестановка 8 и 2
10, 3, 11, 2, 8, 9, 15, 44 Перестановка 11 и 2
10, 3, 2, 11, 8, 9, 15, 44 Перестановка 3 и 2
10, 2, 3, 11, 8, 9, 15, 44 Перестановка 10 и 2
2, 10, 3, 11, 8, 9, 15, 44 Перестановка 11 и 8
2, 10, 3, 8, 11, 9, 15, 44 Перестановка 10 и 3
2, 3, 10, 8, 11, 9, 15, 44 Перестановка 11 и 9
2, 3, 10, 8, 9, 11, 15, 44 Перестановка 10 и 8
2, 3, 8, 10, 9, 11, 15, 44 Готово

Реализовать данный алгоритм можно простым способом (рис. 12.1), где присутствует большое число проходов «вхолостую».



Так же можно реализовать с использованием флага (рис. 12.2), который позволяет сэкономить на числе пустых проходов по массиву и числе сравнения соседних элементов. Чтобы лишний раз не переставлять элементы, можно ввести флажок b, который остается в значении false , если при очередном проходе не будет произведено ни одного обмена. Добавления можно проанализировать, сравнив блок-схемы (рис. 12.1 и 12.2).

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



<== предыдущая лекция | следующая лекция ==>
Сортировка методом прямого выбора | Принцип работы быстрой сортировки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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