Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы алгоритмизации и языки программирования.doc
Скачиваний:
347
Добавлен:
02.05.2014
Размер:
571.39 Кб
Скачать

2.1 Простой выбор

Идея метода простого выбора заключается в следующем: выделяется наименьший (наибольший) элемент массива и отделяется от остальных. Далее снова выделяется наименьший (или наибольший) из оставшихся и т.д.

Например, расположить элементы последовательности А1, А2,…,АN в порядке убывания. Найти в массиве элемент с наибольшим значением и поменять его местами с первым элементом. Далее те же действия выполнить с остальными N-1 элементами массива, затем N-2 элементами и т.д., пока не останется один элемент – последний, наименьший.

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

Словесный алгоритм сортировки простым выбором будет следующий:

1. Начать сортировку с первого элемента i=1.

2. Найти максимальный элемент и его номер в массиве А1, А2,…,АN;

3. Поменять местами Аi и максимальный элемент Аk;

4. Перейти к следующему элементу i=i+1;

5. Если рассмотрены не все N-1 элементы, то повторить с п.2.

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

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

2.2 Простой обмен

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

Любой метод сортировки так или иначе связан с обменом – перестановкой двух элементов в памяти. Для обменной сортировки это основная характеристика процесса. Принцип сортировки простым обменом заключается в многократном сравнении элементов массива, стоящих рядом, и перестановке этих элементов в заданном порядке. Таким образом, соседние элементы А1 и А2, А2 и А3, А3 и А4, А4… поочередно сравниваются. Если Аi-1 > Аi, то элементы меняются местами.

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

Составим алгоритм для решения этой задачи. Основная часть алгоритма – цикл, который должен выполниться за N-1 раз. Выбор границ 1 и (N-1) или 2 и N влияет только на задание индексов сравниваемых элементов.

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

1. i = 2;

2. Сравнить попарно элементы АN, АN-1,…, Аi, Аi-1;

3. i = i+1$

4. Если i <=N, то повторить с п.2.

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

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

Соседние файлы в предмете Алгоритмы