Упорядочения массивов по какому-либо признаку называются также сортировками. Существуют различные методы сортировок, различающиеся, в основном, по скорости получения результата. Рассмотрим один из них — «метод пузырька». Пусть имеется последовательность чисел al, a2, ..., an, которую необходимо упорядочить по возрастанию. Зафиксируем первый элемент и будем последовательно сравнивать его со стоящими справа. Если какой-то из элементов справа окажется меньше первого, то мы поменяем местами этот элемент с первым и продолжим сравнение уже нового элемента, стоящего на первом месте, с оставшимися справа числами.
Если снова выявится элемент, меньший зафиксированного, то повторим перестановку. В результате первого просмотра последовательности на первом месте окажется наименьший из всех элементов, т. е. он, как более «легкий», как бы всплывает наверх (отсюда и название метода — «метод пузырька»). Теперь зафиксируем второй элемент и повторим просмотр, выполняя при необходимости перестановки элементов, и т. д. Уяснив идею решения, остановимся на двух вопросах: каким образом фиксировать элементы и как осуществить перестановку двух элементов? Чтобы при переборе элементов, стоящих справа от проверяемого, не менялся индекс последнего, индексы фиксируемого и стоящих правее него элементов должны быть различными: i и j. Индекс i изменяется от 1 до n — 1, индекс j всегда на 1 больше i и пробегает все значения от i + 1 до п. Для каждого значения i индекс j должен последовательно принять все допустимые значения, следовательно, конструкция программы, отражающая полный перебор всех элементов и их упорядочение по возрастанию, представляет собой двойной цикл. При перестановке двух элементов используется третья переменная. Перестановка местами (обмен значениями в памяти) двух переменных а и Ь выглядит следующим образом: 1) с: = а; 2) а: = b; 3) b: = с.
Программа сортировки методом пузырька имеет вид:
program Е14;
const n = 7;
var a : array [ 1.. n ] of real; i, j: integer; c: real;