Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие VBA.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
693.25 Кб
Скачать

2.7.3.1. Метод выбора

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

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

Пусть Х – одномерный массив из n элементов (чисел). Требуется отсортировать его по возрастанию значений элементов. Для реализации метода выбора потребуется организовать два цикла: один вложенный в другой. Поэтому потребуется два индекса: переменная i – для управления внешним циклом, переменная j – для управления внутренним циклом. Переменная М используется для поиска минимального (максимального) элемента. Необходима также дополнительная переменная А для обмена местами очередного минимума (максимума) с нужным элементом. В переменную k заносится номер очередного минимума (максимума).

На рисунке 11 изображена блок-схема сортировки по возрастанию элементов массива Х методом выбора.

Сортировка по убыванию выполняется аналогично, только необходимо заменить знак «<» на знак «>» (чтобы заменить поиск минимумов на поиск максимумов).

Рис. 11. Сортировка по возрастанию методом выбора

2.7.3.2. Пузырьковая сортировка

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

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

Пусть Х – одномерный массив из n элементов (чисел). Требуется отсортировать его по возрастанию значений элементов. Для реализации пузырьковой сортировки потребуется организовать два цикла: один вложенный в другой. Во внутреннем цикле (с управляющей переменной i) будет осуществляться сравнение пар соседних элементов X(i) и X(i+1) от начала и до конца массива. Для перестановки соседних элементов потребуется дополнительная переменная А. Во внешнем цикле будет проверяться условие окончания сортировки (по значению переменной-признака). В качестве переменной-признака окончания сортировки можно использовать либо переменную, логического типа (со значениями True и False), либо целочисленную переменную (со значениями 0 и 1). Будем использовать переменную В целого типа. Если при проверке условия В=0, то сортировка еще не завершена. Если В=1, то сортировка закончена.

Рис.12. Пузырьковая сортировка по возрастанию

На рисунке 12 изображена блок-схема сортировки по возрастанию элементов массива Х методом пузырьковой сортировки.

Сортировка по убыванию выполняется аналогично, только необходимо заменить знак «<» на знак «>» при сравнении соседних элементов.

Контрольные вопросы

1. Что такое алгоритм?

2. Какими свойствами должен обладать алгоритм?

3. Что называют алгоритмизацией?

4. Какие основные этапы решения задачи с помощью ЭВМ?

5. Какие существуют способы записи алгоритма?

6. Как выглядят основные элементы блок-схемы?

7. Что называют типовой структурой алгоритма?

8. Какие элементы не могут присутствовать в блок-схеме алгоритма линейной структуры?

9. Чем обход отличается от ветвления?

10. Что такое цикл?

11. Как отличить разветвляющуюся структуру от циклической?

12. Какие типы циклов различают?

13. Какие алгоритмы называют стандартными?

14. В чем суть алгоритма накопления?

15. Как работает алгоритм поиска максимума (минимума)?

16. В чем суть алгоритма сортировки методом выбора?

17. В чем суть алгоритма сортировки методом пузырька?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]