Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП.doc
Скачиваний:
22
Добавлен:
15.11.2018
Размер:
435.2 Кб
Скачать

21. Дайте понятие сортировки. Изложите общие принципы сортировки выбором, вставкой, обменом.

Разработать программу решения задачи, в которой отсортировать одномерный массив a[1..15], состоящий из элементов целого типа в порядке возрастания методом «пузырька». Исходные данные массива задаются случайным образом.

Сортировка

В общем случае сортировку следует понимать как процесс перегруппировки заданного множества объектов в некотором определенном порядке.

Цель сортировки – облегчить последующий поиск элементов в таком упорядоченном (отсортированном) множестве.

Выделяют два класса методов сортировки – сортировку массивов и сортировку последовательностей. Часто их называют внутренней и внешней сортировкой. Сортировка называется внутренней, если все сортируемые ключи размещаются в оперативной памяти. Если некоторая часть ключей размещается на внешнем носителе, то сортировка называется внешней.

Методы, сортирующие элементы "на том же месте", можно разбить на три основных класса в зависимости от лежащего в их основе приема:

  • сортировка обменом,

  • сортировка выбором (выделением),

  • сортировка включениями (вставками).

Сортировка простым обменом (метод «пузырька»)

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

Пример сортировки методом пузырька

Сортировка выбором

При сортировке выбором выбирается элемент с наименьшим значением и делается его обмен с первым элементом массива. Затем находится элемент с наименьшим значением из оставшихся n-1 элементов и делается его обмен со вторым элементом и т.д. до обмена двух последних элементов. Например, если сортировку выбором применить для массива "bdac", то будут получены следующие проходы:

исходное положение: b d a c;

первый проход: a d b c;

второй проход: a b b c;

третий проход: a b c d.

Сортировка вставкой

Сортировка вставкой является последней из класса простых алгоритмов сортировки. При сортировке вставкой сначала упорядочиваются два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению к первым двум элементам. Затем делается вставка четвертого элемента в список из трех элементов. Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены. Например, для массива "dcab" сортировка вставкой будет проходить следующим образом:

исходное положение: d c a b;

первый проход: c d a b;

второй проход: a c d b;

третий проход: a b c d.

program sort;

var

a : array[1..15] of integer;

i, j, t : integer;

begin

randomize;

for i:=1 to 15 do

begin

a[i]:=random(100);

write(a[i]:4);

end;

writeln;

for i:=2 to 15 do

for j:=15 downto i do

begin

if a[j-1]>a[j] then

begin

t:=a[j];

a[j]:=a[j-1];

a[j-1]:=t;

end;

end;

for i:=1 to 15 do write(a[i]:4);

readln;

end.