Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦІї.docx
Скачиваний:
37
Добавлен:
10.11.2018
Размер:
280.19 Кб
Скачать

2. Зображення таблиць

Структуру зберігання таблиць вибирають в залежності від типу операцій, що виконуються над ними. Для внутрішніх таблиць може бути вибрана довільна структура, яку можна побудувати в оперативній пам‘яті. Залежно від методу доступу до елементів таблиці поділяються на послідовні, деревоподібні і з обчислювальними адресами. Останні, в свою чергу, поділяються на таблиці з прямим доступом і хеш-таблиці. Всіх їx, крім таблиць з прямим доступом, можна зберігати у векторній і зчепленій пам'яті.

У найпростіших послідовних таблиць для зберігання одного запису потрібно щонайменше одну ділянку пам'яті з двома полями: КЛЮЧ і значення. Таблиця може зображуватися як вектор із цих ділянок, або як лінійний список.

Деревоподібні таблиці або таблиці, організовані як дерева порівнянь, також можуть бути зображені у векторній і зчепленій пам'яті. У першому випадку елементи даних повинні бути впорядковані за значенням ключа, у другому - зображені у вигляді двозв‘язного списку. Для цього до кожного елемента таблиці повинно бути приєднано два вказівники - відповідно на ліве і праве піддерево. Тоді елемент таблиці перетворюється до такого:

де ЛВ, ПВ - відповідно лівий і правий вказівники.

Контрольні питання

  1. Що називається таблицею?

  2. Назвіть основні операції з таблицями.

  3. Назвіть основні властивості ключа запису в таблиці

  4. В залежності від методу доступу до елементів таблиці поділяються на…

Лекція 13 Пошук даних

Задача пошуку виникла пізніше, ніж задача сортування. Поява її спричинена головним чином появою автоматизованих інформаційних систем АІС, які будуються на основі ЕОМ.

Розглянемо звичайну пошукову задачу: як знаходити дані, що збері­гаються в пам‘яті ЕОМ з якоюсь ідентифікацією.

Наприклад, в обчислювальній задачі потрібно знайти f(х) , маючи значення x і таблицю значень функції f(x) ; у лінгвістичних зада­чах може цікавити англійський еквівалент відповідного слова.

Взагалі будемо припускати, що зберігається множина з n записів i необхідно визначити місцезнаходження відповідного запису. Розглянемо ряд алгоритмів пошуку і наведемо їх короткі характеристики, а також рекомендації застосування.

1. Послідовний або лінійний пошук

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

Алгоритм L.

Таблиця містить п записів R1 ,..., Rп з ключами k1 ,..., kп . Необхідно знайти запис iз заданим ключем k.

L1. Ініціалізація індексу проходження таблиці: і=1.

L2. Якщо k=ki - кінець успішний; якщо ні, перехід на L3.

L3. Зміна індексу і =i+1.

L4. Перевірка умови i<n? Так: перехід на L2. Ні - кінець неуспішний.

Ефективність алгоритму можна оцінити, підрахувавши кількість ви­конаних порівнянь тих значень ключів, які приймають участь у пошуку. Середня кількість таких порівнянь дорівнює величині п.

2. Двійковий пошук

Другим відносно простим методом доступу до таблиць є метод бінар­ного пошуку. Двійковий пошук можливий у таблицях, організованих як дерева порівнянь. Елементи в таких таблицях зберігаються в лексико­графічному /тобто алфавітному/ порядку, або в порядку зростання число­вих значень ключів.

Загальна стратегія організації дерева полягає у поділі таблиці на підтаблиці, сукупності елементів на підмножини елементів. Тоді процедура пошуку елемента в дереві порівнянь нагадує пошук імені в телефонному довіднику. Для відшукання елемента потрібно спочатку вирішити, в якій підмножині знаходиться елемент, знайти цю підмножину і після цього продовжувати пошук.

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