Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаТ Алгор2012.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
472.06 Кб
Скачать

5.Алгоритми пошуку.

Однією з основних задач нечислової обробки даних є задача пошуку. Так як звичайно об'єкт (елемент) має декілька властивостей, то пошук здійснюється по ключу, наприклад:

struct item

{

int key;

//інформаційнi поля

};

Лінійний пошук - це пошук підряд в неупорядкованій послідовності.

Двійковий пошук - це пошук в упорядкованій послідовності. Структурой даних, яка дозволяє виконати двійковий пошук є дерево двійкового пошуку (тема «Структури даних»).

Метод розміщення (хешування):

Функція розміщення h (хеш-функція) відображає елементи універсальної множини S в множину A цілих чисел від 0 до m-1. Компонентами масива А (таблиця розміщення або хеш-таблиця), розміром m служать покажчики на списки елементів множини S. Список, на який указує А[i] складається з усіх тих елементів а з множини S, для яких h(a)=i.

Таблиця розміщення (хеш-таблиця):

Список для h(a)=0

А

0

Список для h(a)=1

1

2

.

.

.

Список для+h(a)=m-1

m-1

.

.

Таким чином масив А – це таблиця розміщення (хешування)

Приклад.

Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значение 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що вставляються ланцюжки:

KEY, STRUCT, RECORD, OBJECT.

Алгоритм:

В якості хеш-функції візьмемо: h(a)=a mod m, де m=5.

ЛАТИНСЬКИЙ АЛФАВІТ:

1 - A, 2 - B, 3 - C, 4 - D, 5 - E, 6 - F, 7 - G, 8 - H, 9 - I, 10 - J, 11 - K, 12 - L, 13 - M, 14 - N, 15 - O, 16 - P, 17 - Q, 18 - R, 19 - S, 20 - T, 21 - U, 22 - V, 23 - W, 24 - X, 25 - Y, 26 - Z.

Тоді:

KEY=11+5+25=41 : h=41 mod 5=1;

STRUCT=19+20+18+21+3+20=83 : h=83 mod 5=3;

RECORD=18+5+3+15+18+4=63: h=63 mod 5=3;

OBJECT=15+2+10+5+3+20=55: h=55 mod 5=0;

Таблиця розмішення (хешування)

OBJECT

А

0

KEY

1

Порожній список

2

STRUCT

RECORD

3

Варіанти індивідуальних завдань

  1. Розробити програму побудови двійкового дерева, ключем в якому служить назва лікарського засобу, а інфоpмаційна частина - величина дійсного типу, яка містить вартість лікарського засобу в гривнях. Написати функцію, здійснюючу пошук лікарського засобу за назвою.

  2. Розробити програму побудови двійкового дерева, ключем в якому служить інвентарний номер книги, а інфоpмаційна частина - величина рядкового типу, яка містить назву книги. Написати функцію, здійснюючу пошук по ключу.

  3. Розробити програму побудови двійкового дерева, ключем в якому служить шифр книги в бібліотеці, а інфоpмаційна частина містить прізвище автора та назву книги. Написати процедуру, здійснюючу пошук прізвища автора книги в двійковому деpеві.

  4. Розробити програму побудови двійкового дерева, ключем в якому служить назва кафедри, а інфоpмаційна частина - величина типу string[10], яка містить прізвище завідуючого. Написати функцію пошуку по ключу в двійковому деpеві.

  5. Розробити програму побудови двійкового дерева, вузол якого містить в якості ключа номер рейсу літака, а в якості інформаційного поля запис:

місце призначення ;

ціна квитка. Написати поцедуpу пошуку в двійковому деpеві відомостей про літак по ключу.

  1. Розробити програму побудови двійкового дерева, вузол якого містить в якості ключа номер палати в лікарні, а в якості інформаційного поля масив прізвищ та ім’я по батькові хворих. Написати функцію пошуку по ключу в двійковому деpеві.

  2. Розробити програму побудови двійкового дерева, вузол якого містить в якості ключа персональний код співробітника в відділі кадрів підприємства, а в якості інформаційного поля запис:

прізвище та ім’я по батькові співробітника;

посада;

розмір окладу.

Написати функцію пошуку прізвища співробітника в двійковому дереві.

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

  2. Розробити програму побудови двійкового дерева, ключем в якому служить номер студентської групи, а інфоpмаційна частина - величина рядкового типу, яка містить шифр спеціальності. Написати функцію, здійснюючу пошук по ключу.

  3. Розробити програму побудови двійкового дерева, ключем в якому служить назва номер автомобіля, а інфоpмаційна частина – прізвище власника. Написати функцію, здійснюючу пошук по ключу.

  4. Розробити програму побудови двійкового дерева, ключем в якому служить прізвище спортсмена, а інфоpмаційна частина – кількість отриманих медалей. Написати функцію, здійснюючу пошук по ключу.

  5. Розробити програму побудови двійкового дерева, ключем в якому служить модель ноутбука, а інфоpмаційна частина – його вартість в гривнях. Написати функцію, здійснюючу пошук по ключу.

  6. Розробити програму побудови двійкового дерева, ключем в якому служить номер маршрутного таксі, а інфоpмаційна частина – початкова і кінцева зупинки. Написати функцію, здійснюючу пошук по ключу.

  7. Розробити програму побудови двійкового дерева, ключем в якому служить номер паспорту, а інфоpмаційна частина – прізвище його власника. Написати функцію, здійснюючу пошук по ключу.

  8. Розробити програму побудови двійкового дерева, ключем в якому служить прізвище співробітника, а інфоpмаційна частина – його адреса. Написати функцію, здійснюючу пошук по ключу.

  9. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

ДАНІ, СТРУКТУРА, ДЕРЕВО, ГРАФ, СТЕК, СПИСОК, ЧЕРГА.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

АЛГОРИТМ, ЕФЕКТИВНІСТЬ, СКЛАДНІСТЬ, МОДЕЛЬ, МАШИНА, РЕГИСТР.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

СОРТУВАННЯ, ШВИДКЕ, ДЕРЕВО, ШЕЛЛА, ЗЛИТТЯМ, ПУХИРЦЕМ, ВКЛЮЧЕННЯМ.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

ПОШУК, СОРТУВАННЯ, ДАНІ, МЕТОДИ, РЕКУРСІЯ, ЦИКЛ.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

BREAK, CONTINUE, EXIT, HALT, FILE, ARRAY, RECORD.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

UNIX, LINUX, WINDOWS, DOS, APPLE, MACINTOSH.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

USES, TYPE, VAR, CONST, RPOCEDURE, FUNCTION.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

PASCAL, C, ASSEMBLER, DELPHI, JUVA, FORTRAN.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

BEGIN, END, READ, WRITE, IF, THEN, ELSE.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

FOR, TO, DOWN, DO, WHILE, REPEAT, UNTIL.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

BASIC, VISUAL, PHOTO, DOS, VIDEO, MULTI.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

ACTION, SCRIPT, FLASH, BOX, CLIP, MOVIE.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

JAVA, SCRIPT, CANVAS, PIXEL, MODEL, RGB.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

AUDIO, VIDEO, FOTO, PICTURE, SONG, WORLD, HELLO.

  1. Нехай елементами являються ланцюжки з букв і використовується наступна функція розміщення (хеш-функція) для таблиці розміру m=5:

скласти «значення» букв, де A має значення 1, B - значення 2 і т.д.;

розділити результат на 5 і узяти залишок.

Вивести уміст таблиці розміщення і списків, при умові, що уставляються ланцюжки:

UKRAINE, RUSSIA, FRANCE, GERMANY, GB, USA.