Top.Mail.Ru
Ответы

Сортировка методом пузырька в VBA

Здравствуйте, подскажите программу, которая сортировала бы рандомные числа методом пузырька в VBA Excel

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок

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

Его суть: сравнить два соседних элемента массива и если они расположены не в «нужном» порядке, то поменять их местами.

Вот условие сортировки по возрастанию:
If a(i) > a(i + 1) Then swap i, i + 1, bool

А вот по убыванию:
If a(i) < a(i + 1) Then swap i, i + 1, bool

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

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

Вот, прямой прогон:
For i = 1 To sizeArr -1 'прямой ход.
If a(i) > a(i + 1) Then swap i, i + 1, bool
Next i

А вот, обратный прогон:
For i = sizeArr To 2 Step -1 'обратный ход.
If a(i) < a(i - 1) Then swap i, i - 1, bool
Next i

более подробно тут (есть ссылка на xls-файл):
https://orenstudent.ru/AboutSort.htm

Аватар пользователя
Просветленный

Напиши, блин. "Пузырёк" - самая простая из сортировок, какую только можно придумать !