Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Pascal 2005 Часть2.doc
Скачиваний:
3
Добавлен:
27.08.2019
Размер:
846.34 Кб
Скачать

Метод линейной вставки

При сортировке исходного вектора A методом линейной вставки последовательно просматриваются элементы вектора A и формируется упорядоченный вектор B. До начала сортировки считается, что длина упорядоченного вектора равно 0. Как только длина упорядоченного вектора станет равной длине исходного вектора, сортировка закончена.

Первый элемент вектора A помещается в первую позицию вектора B. Длина вектора становится равной 1.

Второй элемент вектора A сравнивается со всеми элементами вектора B. Если он больше всех элементов вектора В, то помещаем его в конец вектора и при этом длина вектора В увеличивается на единицу. Если в векторе В найдется элемент, меньший сравниваемого, то фиксируем позицию этого элемента, и все элементы вектора В, начиная с этой позиции, перемещаем на одну позицию вправо, начиная с последнего. На освободившееся место помещаем сравниваемый элемент. Длину вектора В увеличиваем на единицу.

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

Просмотр

Исходный вектор А

Полученный вектор В

1-ый

2 4 8 5 6 1

2

2-ой

2 4 8 5 6 1

2 4

3-ий

2 4 8 5 6 1

2 4 8

4-ый

2 4 8 5 6 1

2 4 8

2 4 5 8

5-ый

2 4 8 5 6 1

2 4 5 8

2 4 5 6 8

6-ой

2 4 8 5 6 1

2 4 5 6 8

2 4 5 6 8

2 4 5 6 8

2 4 5 6 8

2 4 5 6 8

2 4 5 6 8

1 2 4 5 6 8

B[1]:=A[1];

k:=1;

For i:=2 to n do

begin

j:=1;

While (j<=k) and (a[i]>b[j]) do

j:=j+1;

If j=k+1 then

begin

b[j]:=a[i];

k:=k+1;

end

else

begin

For l:=k+1 downto j+1 do

b[l]:=b[l-1];

b[j]:=a[i];

k:=k+1;

end;

end;

Сравнение методов по основным характеристикам

для вектора размерности n

Метод сортировки

Минимальное и максимальное число сравнение

Количество перемещений или обменов

Линейный выбор

,

n перемещений

Линейный выбор с обменом

,

n обменов

Линейны выбор с подсчетом

,

n перемещений и

подсчетов

Парный обмен

n,

обменов

Метод стандартного обмена

n,

обменов

Метод просеивания

n,

обменов

Метод линейной вставки

n,

перемещений