ИНСТИТУТ ТОЧНОЙ МЕХАНИКИ И ОПТИКИ (САНКТ-ПЕТЕРБУРГ) Кафедра прикладной математики ОПИСАНИЯ КОМБИНАТОРНЫХ АЛГОРИТМОВ для выполнения лабораторных работ по курсу "Вычислительные методы в дискретной математике" составил доц. Кукушкин Б.А. 01.02.94 СОДЕРЖАНИЕ ЧАСТЬ 1. АЛГОРИТМЫ СОРТИРОВКИ .............................4 1. Методы вставки. Алгоритм простых вставок. .............4 1.1. Бинарные вставки ...................................5 1.2. Двухпутевые вставки ................................6 1.3. Вставки одновременно нескольких элементов. ............6 1.4. Вставки с убывающим шагом (метод Шелла) .............7 1.5. Вставки в связанный список .............9 1.6. Вставки в несколько связанных списков ............10 2. Обменная сортировка ...................................12 2.1. Метод пузырька ...................................12 2.2. Модификация метода пузырька .......................13 2.3. Быстрая сортировка. ...........................14 2.4. Обменная поразрядная сортировка ......................17 2.5. Параллельная сортировка Бэтчера ......................20 3. Сортировка посредством выбора .........................24 3.1. Использование связанного списка для хранения информации о промежуточных максимумах. ...............24 3.2. Пирамидальная сортировка. ..........................26 4. Сортировка посредством слияния ......................31 4.1. Естественное двухпутевое слияние .....................31 4.2. Простое двухпутевое слияние. .........................33 4.3. Слияние связанных списков ...........................35 5. Распределяющая сортировка .............................37 ЧАСТЬ 2. АЛГОРИТМЫ ПОИСКА ..............................41 6. Последовательный поиск ..............................41 6.1. Последовательный поиск по связанному списку ........41 6.2. Последовательный поиск с перестановкой элементов......42 6.3. Последовательный поиск в упорядоченном файле .....43 6.4. Бинарный поиск в упорядоченном файле. ...............43 6.5. Однородный бинарный поиск ....................44 6.6. Интерполяционный поиск ....................45 7. Поиск по бинарным деревьям .......................46 7.1. Поиск по бинарному дереву. .......................46 7.2. Удаление из бинарного дерева .......................47 7.3. Построение оптимальных бинарных деревьев поиска ......47 7.4. Цифровой поиск по дереву .........................51 7.5. Цифровой поиск для длинных ключей, хранимых в текстовом массиве (Патриция) .......................51 8. ЛАБОРАТОРНЫЕ ЗАДАНИЯ ...............................56 8.1. Сортировка .......................................56 8.2. Поиск .............................................57 Обозначения, использованные в данном пособии. lg алгоритм по основанию 2 ┌ ┐ │ А │ наименьшее целое значение, большее или равное А │ А │ наибольшее целое значение, меньшее или равное А └ ┘