Упорядочить элементы массива по возрастанию методом «пузырька» - Turbo Pascal
Формулировка задачи:
Задан 1-мерный целочисленный массив А, состоящий из N элементов, где N- заданное натуральное число. Упорядочить элементы массива по возрастанию методом «пузырька».
Решение задачи: «Упорядочить элементы массива по возрастанию методом «пузырька»»
textual
Листинг программы
const m = 100; var i, n: byte; a: array[1..m] of longint; t: longint; no_swap: boolean; begin repeat write('Array size, [2..', m, ']; N = '); readln(n) until n in [2..m]; writeln('Enter elements of array:'); for i := 1 to n do begin write('A[', i, '] = '); readln(a[i]) end; writeln('Source array:'); for i := 1 to n do write(' ', a[i]); writeln; repeat no_swap := true; for i := 1 to n - 1 do if a[i] > a[i + 1] then begin t := a[i]; a[i] := a[i + 1]; a[i + 1] := t; no_swap := false end until no_swap; writeln('Sorted array:'); for i := 1 to n do write(' ', a[i]); readln end.
Объяснение кода листинга программы
- В первой строке объявляются константа m, равная 100, и переменные i, n типа byte.
- Далее объявляется массив a типа array[1..m] of longint и переменная t типа longint.
- Переменная no_swap инициализируется значением true.
- В цикле repeat-until пользователю предлагается ввести размер массива от 2 до 100 и нажать Enter.
- Затем выводится сообщение «Введите элементы массива» и в цикле for i := 1 to n пользователю предлагается ввести элементы массива по одному и нажать Enter.
- Выводится сообщение «Исходный массив» и в цикле for i := 1 to n выводятся элементы массива a с пробелами между ними.
- Затем в цикле repeat-until выполняется сортировка массива методом
пузырька
. Переменная no_swap устанавливается в true. - В цикле for i := 1 to n-1 выполняется сравнение элементов a[i] и a[i+1]. Если a[i] больше a[i+1], то выполняется обмен элементов a[i] и a[i+1] с помощью переменной t, и переменная no_swap устанавливается в false.
- Цикл повторяется до тех пор, пока переменная no_swap не станет равной true.
- Выводится сообщение «Отсортированный массив» и в цикле for i := 1 to n выводятся элементы массива a с пробелами между ними.
- Программа завершается чтением символа Enter.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д