Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pascal.pdf
Скачиваний:
114
Добавлен:
20.04.2015
Размер:
980.04 Кб
Скачать

 

55

Программирование на языке Pascal

Сортировка элементов массива

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

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

большая. В общем случае ему потребуется сделать ~ n2 операций. Если n (это количество элементов массива) достаточно велико, то алгоритм работает крайне медленно.

В качестве примера рассмотрим сортировку массива, состоящего из трех элементов

2, 5, 1

Сортировать будем по возрастанию.

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

эти элементы местами, получив следующий массив:

1, 5, 2

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

Исходный текст, реализующий такой метод сортировки, приведем ниже:

Uses Crt;

Var randomArray: Array[1..10] Of Integer;

temp, i,j: Integer;

Begin

Randomize;

55

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]