Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Романов Александр Васильевич

Структуры и алгоритмы обработки данных

Учебное пособие по дисциплине
«Структуры и алгоритмы обработки данных»
для специальностей
«Программное обеспечение информационных технологий» и
«Информационные системы и технологии»

Минск 2010


ББК 32.973.2

УДК 681.3.06(075)

 

Структуры и алгоритмы обработки данных: Учеб. пособие. – Мн: БНТУ, 2010. – 151 с.: ил.

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

 

 


Содержание

 

1 Введение.............................................................................................................. 6

1.1 Данные................................................................................................................... 6

1.2 Логическая и физическая структуры данных.................................................... 7

1.3 Классификация структур данных....................................................................... 9

1.4 Основные операции над структурами данных.................................................. 10

1.5 Алгоритм и примеры задач, решаемых с помощью алгоритмов..................... 12

2 Адресация и распределение памяти................................................ 14

2.1 Адресные пространства и модели оперативной памяти.................................. 14

2.2 Формирование физического адреса в реальном режиме................................. 15

2.3 Особенности адресации в защищенном режиме............................................... 16

2.4 Кэширование......................................................................................................... 17

3 Анализ алгоритмов...................................................................................... 19

3.1 Быстродействие – основной показатель эффективности алгоритма.............. 19

3.2 Подсчет числа простейших операций................................................................ 21

3.3 О-нотация.............................................................................................................. 22

3.4 Лучший, средний и худший случаи.................................................................... 23

3.5 Алгоритмы и платформы..................................................................................... 24

3.5.1 Виртуализация памяти...................................................................................... 24

3.5.2 Использование кэша.......................................................................................... 25

3.5.3 Выравнивание данных...................................................................................... 26

3.6 Рандомизированные алгоритмы......................................................................... 26

4 Записи................................................................................................................... 27

4.1 Общая характеристика записей и способы описания в Delphi........................ 27

4.2 Многоуровневые записи...................................................................................... 29

4.3 Выравнивание и упакованные записи............................................................... 29

4.4 Записи с вариантной частью............................................................................... 30

5 Массивы.............................................................................................................. 33

5.1 Общая характеристика массивов........................................................................ 33

5.2 Статические (стандартные) массивы.................................................................. 34

5.2.1 Вектор................................................................................................................. 34

5.2.2 Многомерные статические массивы................................................................ 35

5.2.3 Свойства статических массивов...................................................................... 37

5.3 Открытые массивы............................................................................................... 37

5.4 Динамические массивы........................................................................................ 38

5.4.1 Динамические векторы..................................................................................... 38

5.4.2 Многомерные динамические массивы............................................................ 40

5.5 Массивы типа Variant........................................................................................... 42

5.6 Вставка и удаление в массиве............................................................................. 43

6 Связные списки и алгоритмы их обработки................................ 46

6.1 Списки и их разновидности................................................................................ 46

6.2 Односвязный список............................................................................................ 47

6.2.1 Общая характеристика односвязного списка................................................. 47

6.2.2 Структура элемента односвязного списка...................................................... 49

6.2.3 Формирование односвязного списка............................................................... 49

6.2.4 Просмотр односвязного списка........................................................................ 50

6.2.5 Вставка элемента в односвязный список........................................................ 51

6.2.6 Удаление элемента из односвязного списка................................................... 53

6.3 Линейный двухсвязный список.......................................................................... 54

6.3.1 Структура элемента двухсвязного списка...................................................... 55

6.3.2 Реализация операций в линейном двухсвязном списке................................ 55

6.4 Плексы................................................................................................................... 58

6.4.1 Нелинейный двухсвязный список................................................................... 58

6.4.2 Нелинейный трехсвязный список................................................................... 59

6.4.3 Определение плекса и его общие признаки................................................... 60

6.5 Иерархическая списковая структура. Сетевая структура................................. 60

6.6 Достоинства и недостатки связных списков..................................................... 63

6.7 Функциональные и свободные списки.............................................................. 63

6.7.1 Общая характеристика функционального и свободного списка.................. 63

6.7.2 Методы формирования свободного списка.................................................... 65

7 Стеки, очереди, деки и операции в них........................................... 66

7.1 Общая характеристика......................................................................................... 66

7.2 Стек........................................................................................................................ 66

7.3 Очередь.................................................................................................................. 68

7.4 Дек.......................................................................................................................... 70

8 Динамические множества и словари.............................................. 72

8.1 Общая характеристика......................................................................................... 72

8.2 Таблица – логическое представление словаря................................................... 73

8.3 Операции в динамических множествах............................................................. 74

9 Деревья.................................................................................................................. 76

9.1 Общая характеристика и некоторые определения............................................ 76

9.2 Представление дерева в памяти.......................................................................... 78

9.2.1 Естественное представление дерева................................................................ 78

9.2.2 Представление дерева с помощью вектора..................................................... 80

9.2.3 Представление дерева с использованием списков сыновей......................... 82

9.3 Методы обхода деревьев...................................................................................... 82

9.4 Бинарное дерево.................................................................................................... 84

9.4.1 Структура бинарного дерева............................................................................ 84

9.4.2 Формирование бинарного дерева.................................................................... 85

9.4.3 Обход бинарного дерева................................................................................... 86

9.4.4 Преобразование любого дерева к бинарному дереву.................................... 88

9.5 Включение и исключение в дереве.................................................................... 89

9.5.1 Включение в дереве........................................................................................... 90

9.5.2 Исключение в дереве......................................................................................... 90

10 Поиск................................................................................................................... 91

10.1 Поиск: определение и общая терминология.................................................... 91

10.2 Линейный (последовательный) поиск............................................................. 93

10.3 Последовательный поиск в упорядоченной таблице..................................... 94

10.4 Последовательный поиск при накоплении запросов..................................... 95

10.5 Индексно-последовательный поиск................................................................. 96

10.6 Бинарный поиск.................................................................................................. 98

10.7 Поиск, использующий бинарное дерево.......................................................... 100

11 Сортировка....................................................................................................... 102

11.1 Общие сведения и некоторые определения..................................................... 102

11.2 Внутренняя сортировка...................................................................................... 103

11.2.1 Сортировка прямыми включениями............................................................. 104

11.2.2 Сортировка бинарными включениями......................................................... 106

11.2.3 Сортировка прямым выбором........................................................................ 106

11.2.4 Сортировка прямым обменом........................................................................ 108

11.2.5 Сортировка методом Шелла........................................................................... 111

11.2.6 Сортировка с помощью бинарного дерева................................................... 113

11.2.7 Пирамидальная сортировка............................................................................ 115

11.2.8 Быстрая сортировка разделением................................................................... 119

11.3 Внешняя сортировка........................................................................................... 121

11.3.1 Сортировка прямым слиянием....................................................................... 122

11.3.2 Сортировка естественным слиянием............................................................. 125

11.3.3 Сортировка многопутевым слиянием........................................................... 126

11.3.4 Многофазная сортировка................................................................................ 127

12 Хеширование и хеш-таблицы.............................................................. 129

12.1 Общие сведения и определения........................................................................ 129

12.2 Коллизии при хешировании.............................................................................. 132

12.3 Разрешение коллизий при хешировании......................................................... 132

12.3.1 Разрешение коллизий методом открытой адресации.................................. 132

12.3.2 Разрешение коллизий методом цепочек........................................................ 137

12.4 Функции хеширования...................................................................................... 139

12.4.1 Хеш-функции для целочисленных ключей.................................................. 139

12.4.2 Хеш-функции для строковых ключей........................................................... 141

13 Поисковые деревья..................................................................................... 143

13.1 Бинарное дерево поиска..................................................................................... 143

13.1.1 Структура бинарного дерева поиска и алгоритм поиска............................ 143

13.1.2 Вставка элемента в бинарное дерево поиска................................................ 144

13.1.3 Удаление из бинарного дерева поиска.......................................................... 146

13.2 Красно-черные деревья...................................................................................... 147

13.2.1 Определение красно-черного дерева, структура его элементов................. 147

13.2.2 Повороты.......................................................................................................... 149

ЛИТЕРАТУРА.............................................................................................................. 151

 


<== предыдущая лекция | следующая лекция ==>
 | Логическая и физическая структуры данных
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 379; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.038 сек.