Вы находитесь на странице: 1из 11

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Сибирский государственный университет


телекоммуникаций и информатики.

Межрегиональный центр переподготовки специалистов

КОНТРОЛЬНАЯ РАБОТА
по дисциплине
«Структуры и алгоритмы обработки данных»
(часть 1)

Выполнил: Баргадаев Артем Вячеславович


Группа: ПБТ-02
Проверила: Мачикина Елена Павловна

Новосибирск, 2021
1. Для набора из 12 символов ФИО студента выполнить вручную сортировку
методом прямого выбора (пример см. в лекциях, раздел 2.1). Определить
количество необходимых сравнений и перестановок.

Б А Р Г А Д А Е В А Р Т

А|Б Р Г А Д А Е В А Р Т

А А|Р Г Б Д А Е В А Р Т

А А А|Г Б Д Р Е В А Р Т

А А А А|Б Д Р Е В Г Р Т

А А А А Б|Д Р Е В Г Р Т

А А А А Б В|Р Е Д Г Р Т

А А А А Б В Г|Е Д Р Р Т

А А А А Б В Г Д|Е Р Р Т

А А А А Б В Г Д Е|Р Р Т

А А А А Б В Г Д Е Р|Р Т

А А А А Б В Г Д Е Р Р|Т

Количество необходимых сравнений равно

11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 66.

Количество необходимых перестановок равно 11.

2. Для набора из 12 символов ФИО студента выполнить вручную шейкерную


сортировку. Подсчитать количество необходимых сравнений и перестановок.
Определить на каждом шаге в методе шейкерной сортировки левую и правую
границы сортируемой части массива (L и R).
Б А Р Г А Д А Е В А Р Т
Р Т
А Р
А В
А Е
А А
А Д
А А
А Г
А Р
А А
А Б
А|Б А Р Г А Д А Е В Р Т
А Б
Б Р
Г Р
А Р
Д Р
А Р
Е Р
В Р
Р Р
Р Т
А|А Б Г А Д А Е В|Р Р Т
В Е
А В
А Д
А А
А Г
А Б
А А
А А А|Б Г А Д В Е|Р Р Т
Б Г
А Г
Г Д
В Д
Д Е
А А А|Б А Г В|Д Е Р Р Т
В Г
А В
А Б
А А А А|Б В Г|Д Е Р Р Т
Б В
В Г
А А А А|Б|В Г Д Е Р Р Т

Количество необходимых сравнений равно 38.

Количество необходимых перестановок равно 21.


3. Для набора из 12 символов ФИО студента выполнить сортировку методом Шелла,
предварительно необходимо определить последовательность шагов по формуле
Кнута. Подсчитать количество необходимых сравнений и перестановок.

Последовательность шагов, предложенная Кнутом:

h1=1, hi=2hi-1+1, i=2,… m, m=⌊log2n⌋-1

Имеем n = 12. Получаем m = 2

h1=1, h2= 3

3-сортировка

Б А Р Г А Д А Е В А Р Т

Б А Р Г А Д А Е В А Р Т

Б А Р Г А Д А Е В А Р Т

Б А Д Г А Р А Е В А Р Т

А А Д Б А Р Г Е В А Р Т

А А Д Б А Р Г Е В А Р Т

А А В Б А Д Г Е Р А Р Т

А А В А А Д Б Е Р Г Р Т

А А В А А Д Б Е Р Г Р Т

А А В А А Д Б Е Р Г Р Т

1-сортировка
А А В А А Д Б Е Р Г Р Т

А А В А А Д Б Е Р Г Р Т

А А В А А Д Б Е Р Г Р Т

А А А В А Д Б Е Р Г Р Т

А А А А В Д Б Е Р Г Р Т

А А А А В Д Б Е Р Г Р Т

А А А А Б В Д Е Р Г Р Т

А А А А Б В Д Е Р Г Р Т
А А А А Б В Д Е Р Г Р Т

А А А А Б В Г Д Е Р Р Т

А А А А Б В Г Д Е Р Р Т

А А А А Б В Г Д Е Р Р Т

Количество необходимых сравнений равно 32.

Количество необходимых перестановок равно 22.


4. Для набора из 12 букв своих фамилии, имени, отчества построить пирамиду.

1 2 3 4 5 6 7 8 9 10 11 12

Б А Р Г А Д А Е В А Р Т

А Е В А Р Т

Д А Е В А Р Т

А Д А Е В А Р Т

Г А Д А Е В А Р Т

В А Д А Е Г А Р Т

Р В А Д А Е Г А Р Т

А В А Д Р Е Г А Р Т

А А В А Д Р Е Г А Р Т

Б А А В А Д Р Е Г А Р Т

А Б А В А Д Р Е Г А Р Т

А А А В Б Д Р Е Г А Р Т

А А А В А Д Р Е Г Б Р Т
5. Для набора из 12 символов ФИО студента выполнить вручную сортировку
методом Хоара.

Б А Р Г А Д А Е В А Р Т

А А Р Г А Д А Е В Б Р Т

А А А Г А Д Р Е В Б Р Т

А А А А|Г Д Р Е В Б Р Т

А А А А|Б Д Р Е В Г Р Т

А А|А А|Б В Р Е Д Г Р Т

А А|А А|Б В|Р Е Д Г Р Т

Б В|Р Е Д Г Р Т

Р Е Д Г|Р Т

Г Е Д Р|Р Т

Г Е Д|Р

Г|Е Д

Д Е

А А А А Б В Г Д Е Р Р Т
6. Провести слияние двух упорядоченных списков. В качестве элементов первого
списка взять буквы фамилии (полностью), в качестве элементов второго списка
взять буквы имени (полностью).

Баргадаев Артем

Список из упорядоченных букв фамилии: А А А Б В Г Д Е Р

Список из упорядоченных букв имени: А Е М Р Т


А1 А2 А3 Б В Г Д Е1 Р1

А4 Е2 М Р2 Т

А1 А2 А3 А4 Б В Г Д Е1 Е2 М Р1 Р2 Т
7. Для набора из 12 трехзначных чисел в 3-ичной системе счисления выполнить
вручную сортировку методом цифровой сортировки. В качестве чисел
использовать порядковые номера (в русском алфавите) букв ФИО студента,
записанные в троичной системе счисления.

Порядковые номера (в русском алфавите) букв ФИО:

Б – 2 = 0023
А – 1 = 0013
Р – 17 = 1223
Г – 4 = 0113
А – 1 = 0013
Д – 5 = 0123
А – 1 = 0013
Е – 6 = 0203
В – 3 = 0103
А – 1 = 0013
Р – 17 = 1223
Т – 19 = 2013

S: 002 001 122 011 001 012 001 020 010 001 122 201
Q0: 020 010
Q1: 001 011 001 001 001 201
Q2: 002 122 012 122
S: 020 010 001 011 001 001 001 201 002 122 012 122
Q0: 001 001 001 001 201 002
Q1: 010 011 012
Q2: 020 122 122
S: 001 001 001 001 201 002 010 011 012 020 122 122
Q0: 001 001 001 001 002 010 011 012 020
Q1: 122 122
Q2: 201
S: 001 001 001 001 002 010 011 012 020 122 122 201
8. Для набора всех символов ФИО студента выполнить вручную быстрый поиск (две
версии) первой буквы имени и буквы «Я». Подсчитать количество необходимых
для поиска операций сравнения для каждой версии.

Баргадаев Артем Вячеславович

Поиск первой буквы имени – “А”.


Версия 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
А А А А А Б В В В В Г Д Е Е Е И Л М О Р Р С Т Ч Ч Я
А А А А А Б В В В В Г Д
А А А А А

Количество операций сравнения равно 5.

Версия 2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
А А А А А Б В В В В Г Д Е Е Е И Л М О Р Р С Т Ч Ч Я
А А А А А Б В В В В Г Д Е
А А А А А Б В
А А А А
А А
А
Количество операций сравнения равно 6.

Поиск буквы – “Я”.


Версия 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
А А А А А Б В В В В Г Д Е Е Е И Л М О Р Р С Т Ч Ч Я
Е Е И Л М О Р Р С Т Ч Ч Я
Р С Т Ч Ч Я
Ч Ч Я
Я
Буква ”Я” не найдена.
Количество операций сравнения равно 9.

Версия 2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
А А А А А Б В В В В Г Д Е Е Е И Л М О Р Р С Т Ч Ч Я
Е Е И Л М О Р Р С Т Ч Ч Я
Р С Т Ч Ч Я
Ч Ч Я
Я
Буква ”Я” не найдена.
Количество операций сравнения равно 5.