Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интегрирование Глава 9.doc
Скачиваний:
3
Добавлен:
12.11.2018
Размер:
1.49 Mб
Скачать
        1. Ранжирование по возрастанию методом «пузырька»

Рассмотрим ранжирование по возрастанию на конкретной задаче (9.5) о числовом одномерном массиве А. В качестве метода поиска используем «всплывание пузырька».

            1. Постановка задачи

Дан одномерный вещественный массив А максимально содержащий до 20 элементов. Диапазон представления численных значений элементов от -50 до 50. Требуется отранжировать исходный массив по возрастанию. Предусмотреть возможность прекращения ввода элементов массива (не более 20) по желанию пользователя.

            1. Формирование математической модели

Исходные данные

А(N) – вещественный массив;

N  20 – максимальный размер массива;

n – реальный размер массива.

Модель массива А(n):

а1

а2

...

аi

...

аn

i – текущий индекс массива;

i = i + 1 – закон изменения индекса;

1in – диапазон изменения номера i элемента.

Расчётные зависимости

аmin1 = min(а1, а2,…, аi,…, аn);

а1 = аmin1;

аmin2 = min(а2,…, аi,…, аn);

а2 = аmin2;

аmin i = min(аi,…, аn-1, аn);

аi = аmin i;

аmin n-1 = min(аn-1n);

аn-1 = аmin n-1;

            1. Выбор метода решения

Решение задачи можно осуществить методом «пузырька». Он реализуется последовательностью:

  • присвоить индексу внешнего цикла его начальное значение (i = 1);

  • присвоить индексу внутреннего цикла его начальное значение (j =  n);

  • сравнить соседние текущие значение aj-1 и aj (aj-1 > aj);

  • выполнить переприсваивание апр = аj-1, аj-1 = аj и аj = апр , если условие выполняется;

  • изменить индекс внутреннего цикла по закону j = j – 1;

  • повторять три предыдущих пункта пока j > i;

  • изменить индекс внешнего цикла по закону i = i + 1;

  • повторять предыдущие пункты, кроме первого, пока i £ n;

  • прекратить решение при i > n.

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

            1. Составление алгоритма решения

Математическая формулировка задачи и выбранный детализированный метод ее решения позволяют создать одношаговую схему алгоритма решения (рис. 9.14).

Рис. 9.14. Схема алгоритма сортировки элементов массива методом «всплывающего пузырька»

Дополнительное условие в постановке задачи (прекращение ввода по желанию пользователя) определяет особенность организации цикла ввода элементов массива А.

Условием прекращения ввода элементов массива определяем нажатием клавиши «Enter» (ввод пустой строки – символа \0). Это обуславливает организацию ввода текущего значения элемента массива как символьной строки, преобразуемой в число, если эта строка не пустая. В схеме алгоритма особенность ввода реализуется последовательностью блоков 2-6.

Вывод исходного и получаемого сортировкой массивов предусматривается отдельными последовательно выполненными циклами.