Сортировка методом пузырька в 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
Напиши, блин. "Пузырёк" - самая простая из сортировок, какую только можно придумать !