Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді до іспиту по СОД.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
191.49 Кб
Скачать
  1. Сортування масивів на місці, прості та складні алгоритми сортування. Приклад програмного коду (але не бульбашкою).

Методи сортування можна розбити у відповідності до визначаючих їх принципів на три основні групи:     1. Сортування за допомогою вставки (by Insertion) або за допомогою включення.     2. Сортування за допомогою вибору (by Selection) або за допомогою виділення.     3. Сортування за допомогою обміну (by Exchange) або бульбашкове.   Кожна група має прямий метод (самий простий) і покращені(ускладнені) методи сортування. Сортування за допомогою вставки.

procedure sortd; {Файл процедуры метода c:\f1\s_dir.pas}

var i,j,x:integer;

begin

for i:=2 to N do

begin x:=a[i]; a[0]:=x; {stop} j:=i;

while x<a[j-1] do

begin

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

end;

a[j]:=x {Вставка}

end

end;

  1. Сортування масивів на місці, метод вставок.

  Принцип сортування: масив розподіляється на відсортовану та невідсортовану частини. На першому кроці за відсортовану частину (послідовність) приймається перший елемент масиву. Кожний наступний елемент з невідсортованої частини вставляємо в заздалегідь відсортовану послідовність так, щоб ця послідовність залишалась відсортованою. При цьому треба:     1. Знайти місце, куди потрібно вставити цей елемент.     2. Зсунути елементи, що стоять справа у відсортованій частині, на одну позицію вправо.     3. На звільнене місце поставити елемент, що аналізується(вставляється).   Два способи виконання цих дій:     1) кожний наступний елемент порівнюється з елементами у відсортованій частині, знаходиться місце вставки, всі наступні елементи зсуваються на одну позицію вправо і після цього вставляється елемент;     2) елемент, що вставляється, послідовно, зліва направо, порівнюється з кожним із елементів у відсортованій частині. Якщо потрібно, елемент у відсортованій частині одразу зсувається на одну позицію вправо. Як тільки знайдено потрібне місце вставки, елемент, що аналізується, вставляється на потрібну позицїю.

procedure sortd; {Файл процедуры метода c:\f1\s_dir.pas}

var i,j,x:integer;

begin

for i:=2 to N do

begin x:=a[i]; a[0]:=x; {stop} j:=i;

while x<a[j-1] do

begin

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

end;

a[j]:=x {Вставка}

end

end;

  1. Сортування масивів на місці, метод простого вибору.

Реализация данного метода не требует дополнительной памяти.

Метод очень прост и состоит в следующем: берется пара рядом стоящих элементов, и если элемент с меньшим индексом оказывается больше элемента с большим индексом, то мы меняем их местами.

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

а потому следующий раз достаточно просматривать уже меньшее количество элементов.

Максимальный элемент как бы всплывает вверх, отсюда и название алгоритма. Так как каждый раз на свое место становится по крайней мере один элемент, то не потребуется более N проходов, где N - количество элементов.

Вот как это можно реализовать:

Program BubbleSort;

Var A : array[1..1000] of integer;

N,i,j,p : integer;

Begin

for i:=1 to n do

for j:=1 to n-i do

if A[j]>A[j+1] then

begin {Обмен элементов}

p:=A[j];

A[j]:=A[j+1];

A[j+1]:=P;

end;

End.