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

Один из самых популярных методов сортировки — "пузырьковый" метод основан на том, что в процессе исполнения алгоритма более " легкие " элементы массива постепенно " всплывают ". Особенностью данного метода является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Алгоритм пузырьковой сортировки по убыванию состоит в последовательных просмотрах снизу вверх (от начала к концу) массива М. Если соседние элементы таковы, что выполняется условие, согласно которому элемент справа больше элемента слева, то выполняется обмен значениями этих элементов.

Приведём пример программы сортировки массива методом пузырька в QBASIC:

REM сортировка методом пузырька

CLS

INPUT "Введите размер массива"; razmer

razmer = razmer – 1

DIM Massiv(razmer)

PRINT "Введите числа в массив"

FOR i = 0 TO razmer

INPUT Massiv(i)

NEXT i

REM сортировка массива

DO

schetchik2 = schetchik

FOR i = 0 TO razmer - 1

IF Massiv(i) < Massiv(i + 1) THEN

buf = Massiv(i)

Massiv(i) = Massiv(i + 1)

Massiv(i + 1) = buf

schetchik = schetchik + 1

END IF

NEXT i

LOOP WHILE schetchik <> schetchik2

FOR i = 0 TO razmer

PRINT Massiv(i);

NEXT i

END

Описание работы программы:

В начале программы нам необходимо определить размер нашего массива, чтоб было выделено место в памяти для массива, и присвоим значение размера массива в переменную razmer. Затем объявим массив и выделим для него объём памяти при помощи процедуры DIM. В созданный массив нужно ввести значения с клавиатуры. Т.к. в массиве не одно, а несколько ячеек, куда записывается информация, то будем использовать операторы цикла с известным числом повторений FOR, TO для повтора одинаковых манипуляций.

Сортировка массива осуществляется в двух циклах вложенных один в другой. Внутренний цикл позволяет сравнивать соседние элементы массива и менять их местами, если выполняется условие: первый меньше второго, иодновременно значение переменной schetchik увеличивается на 1. Внешний цикл проверяет произошли ли изменения в массиве во время проверки или нет – переменные schetchik и schetchik2. Работа циклов завершается если после сравнения элементов массива не произошло ни одного изменения.

В конце выводим содержимое отсортированного массива на экран.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: