Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
final.docx
Скачиваний:
10
Добавлен:
14.07.2019
Размер:
71.28 Кб
Скачать

Дерево бінарного пошуку

Ключ кожного вузла дерева має значення ключа більше або рівне значенню ключа його лівого піддерева і менше або рівне – правого піддерева.

Рекурсивна реалізація пошуку для добавлення вузла в дерево ділить новий елемент зовнішнього вузла

Якщо значення ключа нового елемента відповідає значенню іншого ключа існуючого вузла , головний вузол стає правим піддеревом цього вузла

BST-дерево – це вже відсортований набір даних.

Існує другий метод вставки при якому новий елемент стає корневим , тобто всі останні вставлені вузли знаходяться близь вершини.

Реалізація

  1. Якщо значення ключа нового вузла більше значення ключа кореня , тоді старий корінь стає лівим піддеревом нового вузла , а правий піддерево старого кореня – правим піддеревом нового вузла

  2. Якщо значення ключа нового вузла менше значення ключа кореня, тоді старого кореня стає

  1. Опишіть операції "ротація-вліво" і "ротація-вправо", наведіть їх призначення та приклад.

Ротація – перетворення дерева , основаному на обміні кореня з його дочерним вузлом при зберігання порядку слідування в вузлах BST- дерева.

а) Ротація вправо – місцями міняються корінь та його лівий вузол

- старий корінь стає правим піддеревом нового кореня

- Праве піддерево нового кореня стає лівим піддеревом старого кореня

б)Ротація вліво – місцями міняються корінь та його правий вузол

- старий корінь стає лівим піддеревом нового кореня

- ліве піддерево нового кореня стає правим піддеревом старого кореня

  1. Наведіть методи балансування BST-дерева, приклади.

Однак пошук на BST—дереві працює в гарантованій виробничості тільки при умові збалансованого дерева, тобто тоді коли всі зовнішні вузли знаходяться на одному рівні (висоті) або на останніх чи передостанніх рівнях.

Існують декілька методів балансування BST-дерева.

  1. Рандомізація (позиція нового вузла вибирається випадковим чином або в корінь дерева або в корінь деякого піддерева )

  2. Армотизація( виконання двійної ротації, оскільки виконується оцінка двох звязків нового вузла до батьківських, виконується дві ротації на одній ітерації)

  3. Оптимізація(використання вузлів з декількоми ключами і звязками)

  1. Опишіть сутність алгоритмів порозрядного пошуку, визначите DST-дерева та TST-дерева.

Порозрядний пошук

При пошуку елемента значення ключа оцінюється порціями а не цілком

TST-дерево- це дерево кожен вузол якого містить один символ і три зв’язки відповідаючі ключам, поточні символи яких більші рівні і менші символа вузла

DST-дерева –ефективні для для дуже великого набору даних 4-х байтними значеннями ключів, оскільки час пошуку обмежується дише довжиною ключа

  1. Розкрийте необхідність аналізу алгоритмів, наведіть методи аналізу.

Аналіз алгоритму - це спосіб пророцтва необхідних ресурсів для його выполенния (оцінка його ефективності ).

Під ресурсами розуміється час виконання і про\їм пам'яті

Застосовується аналіз алгоритмів як на етапі з розробки, так і на етапі реалізації .

Рассматрмваемые методи аналізу ..

Емпіричний аналіз - обчислення часу виконання шляхом запуску на виконання реалізацій алгоритмів.

Математичний аналіз - обчислення відносного часу виконання шляхом побудови математичного вираження .

  1. Поясните сутність емпіричного аналізу алгоритмів, його особливості й причини застосування.

Емпіричний анализ- обчислення часу виконання шляхом запуску на виконання реалізацій алгоритмів.

Допущення при емпіричному аналізі:

1 категорія(реалізація)

1. Алгоритми реалізовані на одній і тій же мові програмирования.

2. Реалізація алгоритмів здійснювалася з однаковою ретельністю.

3. Виконуваний код (програма) алгоритмів був отриманий з використанням одного і того ж середовища програмування.

4. Виконання алгоритмів здійснювалася на одній і тій же машині.

2 категорія (початкові дані)

1. Використання реальних даних (точний вимір часу виконання)

2. Використання випадкових даних (гарантія аналізу саме алгоритму, вимір середнього часу виконання)

3. Використання незвичайних даних (вимір найгіршого випадку)

  1. Поясните сутність математичного аналізу, його особливості й причини застосування.

Математичний анализ- обчислення відносного часу виконується шляхом побудови математичного вираження.

Математичний аналіз застосовується якщо:

1. Отсутсвует реалізація алгоритму.

2. Необхідно передбачити час виконання алгоритму в новому середовищі.

3. Сравниваються різні алгоритми, предназначенны для одного завдання.

При виконанні мат. Аналізу важливо пам'ятати, що усі алгоритми мають параметри, які впливають на час їх виконання(типи абстрактних операцій).

  1. Дайте поняття "рост-функція", призначення. Наведіть типи рост-функцій.

Зависимость времени виполнения можно виразить через главний параметр с импользованием простих математических формул, називается рост функциями.

1-постоянное время исполнения(почти все операции виполняются один раз или несколько) пошук індексуванням по ключу

N-линейное время виполнения (если каждий елемент подвергается обработке)-послідовний пошук

logN-логарифмическое время виполнения (задача разбивается на набор подзадач , с уменьшением размера задачи на каждом шаге на некоторий постоянний коефициент и решение определяется в одой из подзадач)-бінарний пошук

NlogN-время виполнения пропорциональное NlogN(задача разбивается на подзадачи, решение которих затем обедениняется)- нисходящая сортировка слиянием)

N2 –квадратическое время исполнения (когда обрабативается все пари елементов –двойние цикли) –например сортировка алгоритмом вставки в наихудшем варианте

N3 –кубическое время исполнения (тройние цикли)- например сортировка двумерного масива по значение бульбашкою

2N- ескспоценциональное время исполнения (прямое решение задачи)

  1. Поясніть "q-нотацію", "О-нотацію", "W-нотацію".

"q-нотацію", -(тета) –математическая запись асимптотической оуенки T(n)=q(g(n))

Где q(g(n)) –ето множество функций для которих справедливо висказивание

"О-нотацію" – определение асимпотической верхней граници(найгірший випадок)

, "W-нотацію".(омега)- определение асимпотической верхней граници(визначає найкращий випадок)

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