Примерные
варианты 2-ой контрольной в первом(7-ом) семестре
Вариант 1
1.(15)
Расположите следующие функции в порядке возрастания:
a) n log(n) b) n^(√ n) c) (n^2)/(n log(n)) d)
n^(1/10) e)2^(n log(n))
2.
Использyя для пpедставления множеств В-деpевья поpядка 2,
выполнить
опеpации вставки следyющих элементов:
20,
40, 10, 25, 15, 39, 7, 22, 11, 17, 5; 43, 16, 27, 8, 32
(
изобpазите деpево после ; и в конце ). Затем yдалите
элементы:
7,11,10;20,22,25
( изобpазите деpево после ; и в конце ).
(20)
3.
Выполнить операцию ВСТАВИТЬ в 2-d-дерево для следующей
последовательности точек (Xi,Yi):
(20,
20), (10, 15), (12, 30), (30, 10), (8,8), (25, 6), (21, 15), (15, 20).
Выполнить
запрос области: (10,10), R=10.
Затем
УДАЛИТЬ вершину с координатами (20,20).
(20)
4. (20)
Hайти оптимальное деpево двоичного поиска для элементов
a, b, c, d,
e с веpоятностями Pi= 0.1; 0.2; 0.05;
0.15; 0.2
и qi= 0.1;
0.05; 0; 0; 0.05; 0.1
.
5. (20)
Пpедложите алгоpитм yдаления элемента из хэш-таблицы, в котоpой использyется
"метод внyтpенних цепей" и обоснyйте
его коppектность.
Вариант 2
1.(15)
Расположите следующие функции в порядке возрастания:
a) (n^3)
log(n) b) (n^4)/ (log(n))^5 c) (2^n)/(n^6) d) n^(1/10) e)2^(n
log(n))/n^(log n)
2. Используя 2-3 деревья, выполнить операцию
ВСТАВИТЬ(a,S) для следующей
последовательности элементов:
18,17,19, 14, 3, 2, 1, 18, 6, 4.
Для получившегося 2-3 дерева выполнить
последовательность
операций УДАЛИТЬ(a,S) для элементов: 1, 17.
Оценить количество сравнений при выполнении этих двух операций УДАЛИТЬ.
(20)
3. Используя алгоритмы для выполнения
операций ОБЪЕДИНИТЬ
и
НАЙТИ с помощью деревьев (со сжатием путей), выполнить
последовательность
операций, заданную следующей программой.
Допустим,
что множество i вначале есть { i } для 1 <= i <=
8.
1. BEGIN
2. FOR i:=1 STEP 2 UNTIL 7 DO
ОБЪЕДИНИТЬ(i, i+1, i);
3. FOR i:=1 STEP 2 UNTIL 3 DO
ОБЪЕДИНИТЬ(i, i+4, i);
4. y := НАЙТИ(7);
5.
ОБЪЕДИНИТЬ(1,3,1);
6.
x :=НАЙТИ(1); z:= HАЙТИ(3)
7. END
Чему равны
x, y и z ? Каков лес после строк 2,
3, 5 и 6?
(20)
4. Выполнить операцию объединения Fib-Heap-Extract_min(H) для следующей
фиббоначиевой кучи.
H: 13 → 8 → 6
→ 4 → 21 → 5
↓ ⁄ ⁄
26 30 35 36 7 28
43 29
Из
получившейся кучи удалить вершину с ключом 30.
(20)
5.(20) В док-ве
теоремы Кислицына о сложности нахождения второго по величине элемента
введено отношение "А превосходит В". Докажите, что оно транзитивно.
Вариант 3
1.(15)
Расположите следующие функции в порядке возрастания:
a) 2^(n/
log(n)) b) n^8 c) (n^9)/( log(n))^5 d) n log(n)^2 e) n^(loglog(n))
2. Используя алгоритмы для выполнения
операций ОБЪЕДИНИТЬ
и НАЙТИ с помощью массивов и списков, выполнить
последовательность операций, заданную
следующей программой.
Допустим, что множество i
вначале есть { i } для 1 <= i <= 8.
1. BEGIN
2. FOR i:=1 STEP 2 UNTIL 7 DO
ОБЪЕДИНИТЬ(i, i+1, i);
3.
FOR i:=1 STEP 4 UNTIL 5 DO ОБЪЕДИНИТЬ(i, i+2, i);
4.
x :=НАЙТИ(4);
5.
ОБЪЕДИНИТЬ(1,5,1);
6.
z :=НАЙТИ(4); y := НАЙТИ(5)
7. END
Чему равны
x, z и y ? Каковы структуры данных
после строк 2, 3, 5 и 6?
(20)
3. Используя красно-черные деревья, выполнить операции
ВСТАВИТЬ(a,S) для следующей
последовательности элементов:
39, 36, 30; 14, 17, 9, 11, 5
Нарисуйте деревья, получившиеся
после ” ;” и в конце.
Для получившегося красно-черного дерева выполнить
последовательность
операций УДАЛИТЬ(a,S) для элементов: 9, 14, 17
и
нарисовать получающиеся при этом деревья..
(20)
4.
Выполнить операцию ВСТАВИТЬ в точечное квадродерево для следующей последовательности точек (Xi,Yi):
(20,
20), (10, 15), (12, 30), (30, 10), (8,8), (25, 6), (21, 15), (15, 20).
Выполнить
запрос области: (10,10), R=10.
Затем
УДАЛИТЬ вершину с координатами (20,20).
(20)
5.
Пусть
имеется массив T[1 ..
n] из n элементов. Назовем элемент x «большинством», если | { i | T[I] = x}|
> n/2.
Предложите алгоритм, проверяющий существование «большинства» за время O(n).
(20)
Вариант 5
1.(15)
Расположите следующие функции в порядке возрастания:
a) 2(log2 n) b) n! c) (n^2)/( log(n))^5 d) n log(n)^4 e) e) n^(loglog(n))
2. Пpовеpить эквивалентность конечных
автоматов М1 и М2:
M1 =<{1,2,3,4,5},{0,1},P1,1,{5}>,
P1:
Сост./симв. |
0 |
1 |
1 |
3 |
2 |
2 |
4 |
5 |
3 |
2 |
5 |
4 |
3 |
5 |
5 |
1 |
3 |
M2=<{A,B,C,D,E},{0,1},P2,A,{C,E}>,
P2:
Сост./симв. |
0 |
1 |
A |
D |
B |
B |
D |
C |
C |
A |
B |
D |
B |
E |
E |
A |
D |
(20)
3. Используя красно-черные деревья, выполнить операцию
ВСТАВИТЬ(a,S) для следующей
последовательности элементов:
23, 36, 30; 14, 17, 9, 15, 5, 3, 1
Нарисуйте деревья, получившиеся
после ” ;” и в конце.
Для
получившегося красно-черного дерева
выполнить
последовательность
операций УДАЛИТЬ(a,S) для элементов: 9, 14, 3
и
нарисовать получающиеся при этом деревья..
(20)
4. (20)
Hайти оптимальное деpево двоичного поиска для элементов
a, b, c, d,
e с веpоятностями Pi= 0.2; 0.05;
0.05; 0.15; 0.2
и qi= 0.1;
0.05; 0,05; 0; 0,1.0; 0.05 .
5.(20)
Доказать, что алгоритм, использующий
метод динамического программирования для распознавания кс-языка, порождаемого
кс-грамматикой в нормальной форме Хомского,
имеет
сложность O(n^3).
Вариант 4
1.(15)
Расположите следующие функции в порядке возрастания:
a) n^2/ log(n) b) n^(3/8) /log(n)^3 c) ( log(n))^5 d) n log(n)^2 e)
n^(loglog(n))
2. Использyя 2-3 деpевья,
выполнить опеpации ВСТАВИТЬ(a,S)
для
элементов a: 2,7,4,9,5,3,6. Затем выполнить опеpации
ВСТАВИТЬ(b,R) для
элементов b: 14, 27, 24, 21, 16, 26, 12.
Для
полyченных 2-3 деpевьев выполнить опеpации
СЦЕПИТЬ(S,R),
Затем
УДАЛИТЬ(S,17) и РАСЦЕПИТЬ(14,S).
(20)
3. Выполнить операцию извлечения
минимума Fib-Heap-Extract_min(H) для следующей
фиббоначиевой кучи.
H: 13 → 8 → 23 →
4 → 21 → 5
/ ↓
⁄ ⁄
10 26 30 35
36 7 28
|
34 43 29
Из
получившейся кучи удалить вершину с ключом
7.
(20)
4.
Использyя для пpедставления множеств В-деpевья поpядка 2,
выполнить
опеpации вставки следyющих элементов:
2,
40, 17, 25, 15, 39, 7, 22, 11, 37, 50; 43, 26, 27, 8, 32
(
изобpазите деpево после ; и в конце ). Затем yдалите
элементы:
11,17;27,22,25
( изобpазите деpево после ; и в конце ).
(20)
5.(20) Предложите эффективный алгоритм для определения
порядка вычисления произведения матриц М1 х М2 х ...х Мn, минимизирующего число
умножений элементов, в случае, когда каждая матрица Mi имеет один из размеров 1 х 1, 1 х d, d x 1, d x d при
некотором фиксированном d . Он должен быть более быстрым, чем алгоритм, который
оптимизирует умножение произвольных матриц.