Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Pascal.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.41 Mб
Скачать

4. Поиск минимального и максимального элементов.

5. Копирование и перестановка элементов. Занятие № 21. Сортировка линейного массива.

Решая задачи связанные с линейными массивами возникает ситуация его сортировки. Под сортировкой линейного массива понимают способ приведения элементов массива к упорядоченному состоянию. Выделяют вид сортировки и метод сортировки.

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

Метод сортировки подразумевает реализацию процесса приведения массива к упорядоченному состоянию. Существует значительное количество различных методов сортировки, среди которых, есть и высокоскоростные (например, сортировка с разделением Хоара, сортировка методом слияний).

Мы разберём два наиболее простых метода.

1. Сортировка прямого обмена.

Предположим, что мы производим сортировку по возрастанию. Тогда на первом шаге нам следует найти в массиве элемент с минимальным значением и поменять его местами с первым элементом. Массив разбивается на две части: первая (состоящая пока из одного элемента) – отсортированная и вторая (начиная со 2-го) – не отсортированная. Теперь найдём в не отсортированной части элемент с минимальным значением и поменяем его местами теперь со вторым элементом в массиве (или с первым, но в не отсортированной части). Теперь отсортированная часть возросла (она состоит из двух элементов), а не отсортированная уменьшилась (на 1 элемент). Действуя аналогичным образом далее легко перевести элементы линейного массива к отсортированному состоянию. Для простоты понимания метода приведём таблицу, в которой проиллюстрируем описанный нами алгоритм:

элемента

Начальное состояние

Шаг

1

2

3

4

5

1

3

-5

-5

-5

-5

-5

2

7

7

0

0

0

0

3

-5

3

3

1

1

1

4

0

0

7

7

3

3

5

1

1

1

3

7

4

6

4

4

4

4

4

7

Тогда для массива размерностью N фрагмент программы сортировки примет следующий вид:

for i:=1 to N-1 do

begin

nmin:=i;

for k:=i+1 to N do

if a[nmin]>a[k] then nmin:=k;

tmp:=a[nmin]; a[nmin]:=a[i]; a[i]:=tmp;

end;