Вопрос №27. VBA-программа пузырьковой сортировки данных, заданных в форме Excel таблицы. Расчет медианы. Привести пример.
Метод пузырька основывается на сравнении 2 соседних ячеек. Если последующая ячейка меньше предыдущей, то нужно обменять ячейки.
Алгоритм состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При проходе алгоритма, элемент, стоящий не на своём месте, «всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма.
Иногда на каждом шаге массив просматривается то с начала, то с конца. Это называется шейкерная сортировка.
sub MyPr()
Dim x(5) as variant
For i=1 to 5
x(i)=cells(1,i)
next i
for i=1 to 5
for j=i+1 to 5
if x( j )<x( i ) then
q=x( i )
x( i )=x( j )
x( j )=q
Next j
next i
End sub