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

Билет 40. Сортировка.

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

Обычно функция упорядочивания не вычисляется по какому-либо правилу, а содержится в каждом элементе в виде явной компоненты (поля). Ее значение называется ключом элемента.

Метод сортировки называется устойчивым если относительный порядок элементов с одинаковыми ключами не меняется при сортировке.

Устойчивость сортировки бывает желательна, если элементы уже упорядочены по каким-то вторичным ключам, т.е. по свойствам отраженным в первичном ключе.

Цель алгоритма:

  1. Показать на примерах как структуры данных используются;

  2. Продемонстрировать влияние структуры данных на алгоритмы( алгоритмы, выполняющие одно и то же задание);

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

Билет 41. Сортировка простыми включениями.

Сортировка простыми включениями. Элементы условно разделяются на готовую последовательность а0..аi-1 и входную последовательность аi..аn. На каждом шаге, начиная с i=2 и затем увеличивая i на единицу берут i-тый элемент входной последовательности и передают в готовую последовательность вставляя его на подходящее место.

При поиске подходящего места удобно чередовать сравнения и пересылки, т.е. как бы «просеивать» сравнивая его с очередным элементом аg и либо вставлять х, либо пересылать аg вправо и продвигаться налево

.

«Просеивание» может закончиться при двух различных условиях: Найдем элемент аg с ключом меньшим чем х; Достигнут левый конец готовой последовательности. Это типичный пример цикла с двумя условиями окончания поэтому можно применить известный метод барьера. Для этого установим барьер а0:=x.

Procedure str;

Var

I, j: index; x: item;

Begin

For i:= 2 to n do begin

X:=a[i]; a[0]:=x; j:=i-1;

While x<a[j] do begin

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

End;

A[j+1]:=x;

End.

Билет 42. Сортировка бинарными включениями

Алгоритм сортировки простыми включениями можно легко улучшить, пользуясь тем, что готовая последовательность a[0], ..., a[i-1], в которую нужно включить новый элемент, уже упорядочена. Поэтому место включения можно найти быстрее, применив бинарный поиск, который определяет срединный элемент готовой последовательности и продолжает деление пополам, пока не будет найдено место включения. Модифицированный алгоритм сортировки называется сортировкой бинарными включениями, он показан в следующей программе:

Рrocedure BinInsSort;

Var i, j, L, R, m: Index;

x: item;

Begin

For i:=2 To m Do Begin

x:= a[i]; L:= 1; R:= i-1;

While L <= R Do Begin

m:= (L + R) Div 2;

If x < a[m] Then R:= m - 1

Else L:= m + 1;

End;

For j:= i-1 Downto L Do a[j+1]:= a[j];

a[l]:= x;

End

End;

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

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