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

Методи сортування, додавання і видалення елементів таблиць

Мета: вивчення основних методів сортування, додавання і видалення елементів таблиць.

Теоретичні відомості

Таблиці та їх призначення в системних програмах

У системних програмах використовуються таблиці імен та констант в

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

Визначення таблиці

Директива STRUC призначена для визначення структурованих блоків даних.

Поле структури - послідовність байтів, слів, подвійних слів, які несуть інформацію про один з елементів структури.

Визначення структури задає шаблон структури і виглядає таким чином:

Ім'я структури STRUC

Послідовність директив DB, ​​DW, DD

Ім'я структури ENDS

У спрощеному вигляді таблиця складається з двох полів - ключа і характеристики.

Ключ є унікальним ідентифікатором запису, основним критерієм для сортування, пошуку та інших основних операцій. Характеристика несе в собі інформаційну частину запису.

Наприклад: sELEMENT STRUC

key DW 0

field DB 0

sELEMENT ENDS

Для резервування пам'яті та ініціалізації значень використовується оператор виклику структури:

Змінна Ім’я структури <Специфікації ініціалізації>

Змінна асоціюється з початком структури і використовується з

іменами полів для звернення до різних полів в структурі:

змінна.поле

Наприклад,

sTB01 sELEMENT <100,25>

MOV AX,sTB01.key

при цьому в регістрі AX виявиться число 100.

Сортування елементів таблиці

Однією з найбільш часто розв'язуваних задач обработки таблиць є сортування елементів.

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

Вибір алгоритму сортування залежить від структури оброблюваних даних.

Короткий опис алгоритмів сортування

Сортування бульбашкою

Алгоритм полягає в повторюваних проходах по сортованому масиву. За кожен прохід елементи послідовно порівнюються попарно і, якщо порядок у парі невірний, виконується обмін елементів. Проходи по масиву повторюються до тих пір, поки на черговому проході не виявиться, що обміни більше не потрібні, що означає - масив відсортований. При проході алгоритму, елемент, що стоїть не на своєму місці, «спливає» до потрібної позиції як бульбашка у воді, звідси і назва алгоритму. Іноді на кожному кроці масив проглядається то з початку, то з кінця. Це називається шейкерне сортування.

Сортування вибором

Вибирається елемент з найменшим ключем і змінює своє місце з першим

елементом. Потім цей процес повторюється з рештою n-1 елементами, n-2 елементами і т.д. до тих пір, поки не залишиться один, найбільший елемент.

Кроки алгоритму:

- Знаходимо мінімальне значення в поточному списку

- Виробляємо обмін цього значення зі значенням на першій позиції

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

Додавання елементів у таблицю

Алгоритм полягає в повторюваних діях з елементами таблиці. Вибирається позиція в таблиці на яку потрібно додати елемент. Після чого відбувається переміщення всіх елементів на позицію нижче і в позицію, що звільнилася, відбувається додавання елемента.

Кроки алгоритму:

- Знаходимо позицію в таблиці, на яку потрібно додати елемент.

- Виконуємо копіювання кожного наступного елемента на позицію нижче.

- Виконуємо запис елемента, який потрібно додати в позицію, що звільнилась.

Видалення елементів з таблиці

Алгоритм полягає в повторюваних діях з елементами таблиці.

Вибирається позиція в таблиці з якою необхідно видалити елемент. Після чого відбувається запис наступного елемента на місце, що видаляється. Вибирається наступний елемент таблиці і записується на місце раніше переміщеного елементу. Ці дії повторюються до тих пір поки всі елементи після видалення не перемістяться на позицію вище.

Кроки алгоритму:

- Знаходимо позицію в таблиці з якою необхідно видалити елемент.

- Виконуємо копіювання наступного елемента на позицію елемента, що видаляється (на позицію вище).

- Виконуємо копіювання всіх наступних елементів на позицію вище.

Завдання на лабораторну роботу

1. Вивести на екран прізвище, групу и № варіанту.

2. Визначити таблицю з двома полями:

- ключ (тип визначається по варіанту)

- характеристика (тип довільний)

Кількість записів в таблиці визначається по варіанту.

3. Відсортувати таблицю заданим по варіанту методом сортування.

4. Провести додавання запису в таблицю по варіанту зі значеннями полів:

- ключ = № варіанту

- характеристика = № групи

5. Провести видалення запису з таблиці по порядковому номеру (індексу), що визначається за варіантом.

Примітка: Варіант визначається по номеру групи і номеру по списку.

Група № Х1

варіанту

Метод сортування

Додавання запису

К-сть

записів

Тип ключа

1

Бульбашкою

Індекс2

4

байт

2

Вибором

В середину таблиці

5

слово

3

Шейкерне

Індекс2

6

символ

4

Бульбашкою

Індекс2

7

2 символи

5

Вибором

В середину таблиці

8

байт

6

Шейкерне

Індекс2

4

слово

7

Бульбашкою

Індекс2

5

символ

8

Вибором

В середину таблиці

6

2 символи

9

Шейкерне

Індекс2

7

байт

10

Бульбашкою

Індекс2

8

слово

11

Вибором

В середину таблиці

4

символ

12

Шейкерне

Індекс2

5

2 символи

13

Бульбашкою

Індекс2

6

байт

14

Вибором

В середину таблиці

7

слово

15

Шейкерне

Індекс2

8

символ

16

Бульбашкою

Індекс2

4

2 символи

17

Вибором

В середину таблиці

5

байт

18

Шейкерне

Індекс2

6

слово

19

Бульбашкою

Індекс2

7

символ

20

Вибором

В середину таблиці

8

2 символи

21

Шейкерне

Індекс2

4

байт

22

Бульбашкою

Індекс2

5

слово

23

Вибором

В середину таблиці

6

символ

24

Шейкерне

Індекс2

7

2 символи

25

Бульбашкою

Індекс2

8

байт

26

Вибором

В середину таблиці

4

слово

27

Шейкерне

Індекс2

5

символ

28

Бульбашкою

Індекс2

6

2 символи

29

Вибором

В середину таблиці

7

байт

30

Шейкерне

Індекс2

8

слово

Видалення запису по Індексу

Додавання запису по Індексу2

Індекс = (№варіанта) mod (К-сть записів) + 1

Індекс2 = ((№варіанту*Тип ключа) mod (К-сть записів-2))+2

Группа № Х2

варіанту

Метод сортування

Додавання запису

К-сть записів

Тип ключа

1

Шейкерне

Індекс2

4

слово

2

Бульбашкою

Індекс2

5

символ

3

Вибором

В середину таблиці

6

2 символи

4

Шейкерне

Індекс2

7

байт

5

Бульбашкою

Індекс2

8

слово

6

Вибором

В середину таблиці

4

символ

7

Шейкерне

Індекс2

5

2 символи

8

Бульбашкою

Індекс2

4

байт

9

Вибором

В середину таблиці

5

слово

10

Шейкерне

Індекс2

6

символ

11

Бульбашкою

Індекс2

7

2 символи

12

Вибором

В середину таблиці

8

байт

13

Шейкерне

Індекс2

4

слово

14

Бульбашкою

Індекс2

5

символ

15

Вибором

В середину таблиці

6

2 символи

16

Шейкерне

Індекс2

7

байт

17

Бульбашкою

Індекс2

8

слово

18

Вибором

В середину таблиці

4

символ

19

Шейкерне

Індекс2

5

слово

20

Бульбашкою

Індекс2

6

символ

21

Вибором

В середину таблиці

7

2 символи

22

Шейкерне

Індекс2

8

байт

23

Бульбашкою

Індекс2

6

слово

24

Вибором

В середину таблиці

7

2 символи

25

Шейкерне

Індекс2

8

байт

26

Вибором

В середину таблиці

4

слово

27

Шейкерне

Індекс2

5

символ

28

Бульбашкою

Індекс2

6

2 символи

29

Вибором

В середину таблиці

7

байт

30

Шейкерне

Індекс2

8

слово

Видалення запису по Індексу

Додавання запису по Індексу2

Індекс = (№варіанту) mod (К-сть записів) + 1

Індекс2 = ((№варіанту*Тип ключа) mod (К-сть записей-2))+2


Группа № Х3

варіанту

Метод сортування

Додавання запису

К-сть записів

Тип ключа

1

Бульбашкою

Індекс2

4

байт

2

Вибором

В середину таблиці

5

слово

3

Шейкерне

Індекс2

6

символ

4

Бульбашкою

Індекс2

7

2 символи

5

Вибором

В середину таблиці

8

байт

6

Шейкерне

Індекс2

4

слово

7

Бульбашкою

Індекс2

5

байт

8

Вибором

В середину таблиці

6

слово

9

Бульбашкою

Індекс2

7

символ

10

Вибором

В середину таблиці

8

2 символи

11

Шейкерне

Індекс2

4

байт

12

Бульбашкою

Індекс2

5

слово

13

Вибором

В середину таблиці

6

символ

14

Шейкерне

Індекс2

4

2 символи

15

Бульбашкою

Індекс2

5

байт

16

Вибором

В середину таблиці

6

2 символи

17

Шейкерне

Індекс2

7

байт

18

Бульбашкою

Індекс2

8

слово

19

Вибором

В середину таблиці

4

символ

20

Шейкерне

Індекс2

5

2 символи

21

Бульбашкою

Індекс2

6

байт

22

Вибором

В середину таблиці

7

слово

23

Вибором

Індекс2

6

символ

24

Шейкерне

Індекс2

7

2 символи

25

Бульбашкою

Індекс2

8

байт

26

Бульбашкою

В середину таблиці

4

символ

27

Вибором

Індекс2

5

2 символи

28

Шейкерне

Індекс2

6

байт

29

Бульбашкою

В середину таблиці

7

слово

30

Шейкерне

Індекс2

8

слово

Видалення запису по Індексу

Додавання запису по Індексу2

Індекс = (№варіанту) mod (К-сть записів) + 1

Індекс2 = ((№варианту*Тип ключа) mod (К-сть записів-2))+2


Группа № Х4

варіанту

Метод сортування

Додавання запису

К-сть записів

Тип ключа

1

Шейкерне

Індекс2

4

байт

2

Бульбашкою

В середину таблиці

5

слово

3

Вибором

Індекс2

6

символ

4

Шейкерне

Індекс2

7

байт

5

Бульбашкою

В середину таблиці

4

слово

6

Вибором

Індекс2

5

символ

7

Шейкерне

Індекс2

6

2 символи

8

Бульбашкою

В середину таблиці

7

байт

9

Вибором

Індекс2

8

слово

10

Шейкерне

В середину таблиці

4

символ

11

Бульбашкою

Індекс2

5

2 символи

12

Вибором

Індекс2

5

2 символи

13

Шейкерне

В середину таблиці

6

байт

14

Бульбашкою

Індекс2

7

слово

15

Шейкерне

В середину таблиці

8

символ

16

Вибором

Індекс2

7

2 символи

17

Шейкерне

Індекс2

8

байт

18

Бульбашкою

В середину таблиці

4

слово

19

Шейкерне

Індекс2

5

символ

20

Бульбашкою

Індекс2

6

2 символи

21

Вибором

Індекс2

7

2 символи

22

Шейкерне

В середину таблиці

8

байт

23

Бульбашкою

Індекс2

7

слово

24

Вибором

Індекс2

7

символ

25

Шейкерне

Індекс2

8

байт

26

Бульбашкою

В середину таблиці

4

слово

27

Шейкерне

Індекс2

5

символ

28

Бульбашкою

Індекс2

6

2 символи

29

Вибором

В середину таблиці

7

байт

30

Шейкерне

Індекс2

8

слово

Видалення запису по Індексу

Додавання запису по Індексу2

Індекс = (№варіанту) mod (К-сть записів) + 1

Індекс2 = ((№варіанту*Тип ключа) mod (К-сть записів-2))+2

Соседние файлы в папке SP_ukr