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

Задание:

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


сортировку методом прямого выбора (пример см. в лекциях, раздел 2.1).
Определить количество необходимых сравнений и перестановок.
2. Для набора из 12 символов ФИО студента выполнить вручную
шейкерную сортировку. Подсчитать количество необходимых сравнений и
перестановок. Определить на каждом шаге в методе шейкерной сортировки левую
и правую границы сортируемой части массива (L и R).
3. Для набора из 12 символов ФИО студента выполнить сортировку
методом Шелла, предварительно необходимо определить последовательность
шагов по формуле Кнута. Подсчитать количество необходимых сравнений и
перестановок.
4. Для набора из 12 букв своих фамилии, имени, отчества построить
пирамиду.
5. Для набора из 12 символов ФИО студента выполнить вручную
сортировку методом Хоара.
6. Провести слияние двух упорядоченных списков. В качестве элементов
первого списка взять буквы фамилии (полностью), в качестве элементов второго
списка взять буквы имени (полностью).
7. Для набора из 12 трехзначных чисел в 3-ичной системе счисления
выполнить вручную сортировку методом цифровой сортировки. В качестве чисел
использовать порядковые номера (в русском алфавите) букв ФИО студента,
записанные в троичной системе счисления.
8. Для набора всех символов ФИО студента выполнить вручную быстрый
поиск (две версии) первой буквы имени и буквы «Я». Подсчитать количество
необходимых для поиска операций сравнения для каждой версии.
Решение:
ФИО – Болгарин Богдан Иванович

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


сортировку методом прямого выбора (пример см. в лекциях, раздел 2.1).
Определить количество необходимых сравнений и перестановок.
Один из самых простых методов сортировки, метод прямого выбора,
заключается в следующем. Находим наименьший элемент массива и обмениваем
его с первым элементом массива. Таким образом, первый элемент можно больше
не рассматривать. Среди оставшихся элементов находим наименьший элемент и
обмениваем его со вторым элементом массива. Среди оставшихся элементов
находим наименьший и переставляем его на третье место и т. д.
Решение данного задания выполнено в виде таблицы 1.
Таблица 1

1 2 3 4 5 6 7 8 9 10 11 12
* *
Б О Л Г А Р И Н Б О Г Д
* * * *
О Б Л Г А Р И Н Б О Г Д
* * * *
О А Л Г Б Р И Н Б О Г Д
* * *
О А И Г Б Р Л Н Б О Г Д
* *
О А И Б Б Р Л Н Г О Г Д
* * *
О А И Б Р Б Л Н Г О Г Д
* *
О А И Б Р Н Л Б Г О Г Д
* * *
О А И Б Р Н Г Б Л О Г Д
* *
О А И Б Р Н Г О Л Б Г Д
* *
О А И Б Р Н Г О Г Б Л Д

О А И Б Р Н Г О Г Л Б Д

О А И Б Р Н Г О Г Л Б Д
Дадим оценку трудоёмкости метода прямого выбора. Количество
необходимых сравнений определяется формулой:
n2−n 122 −12
C= = =66
2 2 .
Количество необходимых перестановок определяется формулой:
M=3⋅( n−1 )=3⋅(12−1 )=33 .

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


шейкерную сортировку. Подсчитать количество необходимых сравнений и
перестановок. Определить на каждом шаге в методе шейкерной сортировки
левую и правую границы сортируемой части массива (L и R).
Решение данного задания выполнено в виде таблицы 2.
Таблица 2

1 2 3 4 5 6 7 8 9 10 11 12
Б О Л Г А Р И Н Б О Г Д
Г Д
О Г
Б О
Б Н
И Б
И Р
А И
А Г
О Л
О О
О Б
О Б О Л Г И Р Б Н О Г Д
О Б
Л Б
Г Б
И Б
Р Б
Б Б
Б Б
О Б
Г Б
Б Д
О О Л Г И Р Б И О Г Б Д
Г Б
О Г
И О
Б И
Б Р
И Б
И Г
И Л
О А Л
О А Л Л Г Г Е И О Р Т Д
Л Л
К Л
К Л
Р Л
Н Л
О Л
Г Л
Л Б
О О И Г Б Р В О Г Л О Д
Г Л
О Г
В О
Р В
Б Р
Б Г
И Б
О А И Б Г Р В О Е Л Б Д
Б Г
Р Б
Н Г
Г О
О Г
Г Л
О А И Б Р Н Г О Г Л Б Д
О Г
Г О
Н Г
Р Н
Б Р
О А И Б Р Н Г О Г Л Б Д
Р Н
Н Г
Г О
О Г
О А И Б Р Н Г О Г Л Б Д
Г О
Н Г
Р Н
О А И Б Р Н Г О Г Л Б Д
Н Г
Г О
О А И Б Р Н Г О Г Л Б Д
Н Г
О А И Б Р Н Г О Г Л Б Д

Количество сравнений: 66.


Количество перестановок: 26.

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


методом Шелла, предварительно необходимо определить последовательность
шагов по формуле Кнута. Подсчитать количество необходимых сравнений и
перестановок.
Последовательность шагов, предложенная Кнутом:
h1 =1 , hi=2 h i−1 +1 , i=2 ,. . .m , m=[ log 2 n ]−1
m=[ log 2 n ]−1=2
Имеем n = 12, тогда .

Следовательно при h1=1, h2= 3.


Решение данного задания выполнено в виде таблицы 3.
Таблица 3
h2= 3
1 2 3 4 5 6 7 8 9 10 11 12
Б О Л Г А Р И Н Б О Г Д
К О Л Б А Р И Н Б О Г Д
К О Л Б А Р И Н Б О Г Д
К О Р Б А Л И Н Б О Г Д
И О Р Г А Л Б Н Б О Г Д
И О Р Г А Л Б Н Б О Г Д
И О Б Г А Р Б Н Л О Г Д
И О Б Г А Р О Н Л Б Г Д
И О Б Г А Р О Н Л Б Г Д
И О Б Г А Р О Н Л Б Г Д
h1=1
1 2 3 4 5 6 7 8 9 10 11 12
И О Б Г А Р О Н Л Б Г Д
О И Б Г А Р О Н Л Б Г Д
О И Б Г А Р О Н Л Б Г Д
О И Б Г А Р О Н Л Б Г Д
О А И Б Г Р О Н Л Б Г Д
О А И Б Р Г О Н Л Б Г Д
О А И Б Р Г О Н Л Б Г Д
О А И Б Р Н Г О Л Б Г Д
О А И Б Р Н Г О Л Б Г Д
О А И Б Р Н Г О Л Б Г Д
О А И Б Р Н Г О Р Л Б Д
О А И Б Р Н Г О Р Л Б Д

Количество сравнений: 37.


Количество перестановок: 17.

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


пирамиду.
Решение данного задания выполнено в виде таблицы 4.
Таблица 4
1 2 3 4 5 6 7 8 9 10 11 12
Б О Л Г А Р И Н Б О Г Д
И Н Б О Г Д
Р И Н Б О Г Д
А Р И Н Б О Г Д
К А Р И Н Б О Г Д
Б А Р И Н Г О Г Д
Л Б А Р И Н Г О Г Д
И Б А Р Л Н Г О Г Д
О И Б А Р Л Н Г О Г Д
Б О И Б А Р Л Н Г О Г Д
О Б И Б А Р Л Н Г О Г Д
О О И Б Б Р Л Н Г О Г Д
О О И Б О Р Л Н Г Б Г Д

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


сортировку методом Хоара.
Решение данного задания выполнено в виде таблицы 5.
Таблица 5
1 2 3 4 5 6 7 8 9 10 11 12
Б О Л Г А Р И Н Б О Г Д
Б
Р О Л Г А Р И Н Б О Д

Р О Л Г А Р И Н Б О
О О Л Г А Р И Н Б Г
О О Р Г А Р И Н Б Л
О О Б Г А Р И Н Р Л
О О Б Г А Р И Н
И О Б Г А Р И О

И О Б Г А Р И
В О Б Г А Р И
В О Б И А Р К
В О Б Р А Н К
В О Б Р А Н
А О Б Р И Н
А О И Р Г Н
Р Г Н
Р Г Н
Г Р Н
О А И Б Р Б Г О Г Л Б Д

6. Провести слияние двух упорядоченных списков. В качестве


элементов первого списка взять буквы фамилии (полностью), в качестве
элементов второго списка взять буквы имени (полностью).

БОЛГАРИН БОГДАН
Произведём упорядочивание по алфавиту, получим:
АБГИЛНОР
АБГДНО
Решение данного задания выполнено в виде таблицы 6.
Таблица 6
А Б Г И Л Н О Р

А Б Г Д Н

А А Б Б Г Г И Д Л Н Н О

Итог: ААББГГИДЛННОР

7. Для набора из 12 трехзначных чисел в 3-ичной системе счисления


выполнить вручную сортировку методом цифровой сортировки. В качестве
чисел использовать порядковые номера (в русском алфавите) букв ФИО
студента, записанные в троичной системе счисления.

Решение данного задания выполнено в виде таблицы 7.


Таблица 7

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

Б О Л Г А Р И Н Б О Г Д

Порядковый
номер буквы 2 16 13 4 1 18 10 15 2 16 4 5
в алфавите

Номера в
троичной
системе 0002 0121 0111 0011 0121 0011 0101 0120 0002 0121 0011 0012
счисления

S: 0002 0121 0111 0011 0121 0011 0101 0120 0002 0121 0011 0012

Q0: 0111 0011 0101 0011 0012

Q1: 0121 0111 0121 0101 0011 0121

Q2: 0202

S: 0111 0011 0101 0011 0012 0121 0111 0121 0101 0011 0121 0202

Q0: 0011 0121 0111 0121 0101 0202

Q1: 0111 0101 0012 0011

Q2: 0011 0121

S: 0011 0121 0111 0121 0101 0202 0111 0101 0012 0011 0011 0121

Q0: 0121 0121 0101 0012 0011 0011

Q1: 0101 0111 0121

Q2: 0011 0111 0202

S: 0121 0121 0101 0012 0011 0011 0101 0111 0121 0011 0111 0202

Q0: 0121 0121 0101 0011 0011 0101 0111 0121 0011 0111 0202

Q1: 0012

Q2:

S: 0121 0121 0101 0011 0011 0101 0111 0121 0011 0111 0202 0012

8. Для набора всех символов ФИО студента выполнить вручную


быстрый поиск (две версии) первой буквы имени и буквы «Я». Подсчитать
количество необходимых для поиска операций сравнения для каждой версии.
ФИО – Болгарин Богдан Иванович

Выполним поиск буквы «Б»


Версия 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
А А А Б Б В В Г Г Д И И И Л Н Н Н О О О
и т.д.
Буква «Б» найдена.
Количество операций сравнения равно 1.

Версия 2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
А А А Б Б В В Г Г Д И И И Л Н Н Н О О О
А А А Б Б
и т.д.
Буква «Б» найдена.
Количество операций сравнения равно 2.

Выполним поиск буквы «Я»


Версия 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
А А А Б Б В В Г Г Д И И И Л Н Н Н О О О
И И И Л Н Н Н О О О
Н Н О О О
О О
О
Буква «Я» не найдена.
Количество операций сравнения равно 5.

Версия 2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
А А А Б Б В В Г Г Д И И И Л Н Н Н О О О
И И И Л Н Н Н О О О
Н Н О О О
О О
О
Буква «Я» не найдена.
Количество операций сравнения равно 5.