пятница, 20 марта 2020 г.

Массивы. Сортировка

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

Существуют множество различных методов сортировки элементов массива. Мы рассмотрим только один.

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

При этом:
если встречается более "легкий" (с меньшим значением) элемент, то они меняются местами;
при встрече с более "тяжелым" элементом, последний становится "эталоном" для сравнения, и все следующие сравниваются с ним .
В результате наибольший элемент оказывается в самом верху массива.

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

Заметим, что при втором и последующих проходах, нет необходимости рассматривать ранее "всплывшие" элементы, т.к. они заведомо больше оставшихся. Другими словами, во время j-го прохода не проверяются элементы, стоящие на позициях выше j.

Теперь можно привести текст программы упорядочения массива M[1..N]:

begin
   for j:=1 to N-1 do
     for i:=1 to N-j do
        if M[i] > M[i+1] then
           begin
              k:=M[i]; M[i]:= M[i+1]; M[i+1]:= M[i] ;
            end;
end;

{переменная к используется для временного хранения значения i-того элемента массива.Для последующей перестановки местами двух соседних значений }

Задание для самостоятельного решения:
  1. Написать программу, которая выполняет ввод 7 целочисленных элементов вектора, производит его сортировку по возрастанию и выводит упорядоченные значения на экран;
  2. Внести в написанную программу изменения, которые позволяют вводить числовой вектор, состоящий из m элементов (чиcло m вводит пользователь, после запуска программы) и затем выводить его на экран упорядоченным по убыванию.
Материал для закрепления темы "Массивы" на Портале "Российская электронная школа"

Комментариев нет:

Отправить комментарий