Combinatorial Algorithm

485
Э.Рейнгольд, Ю.Нивергельт, Н.Део КОМБИНАТОРНЫЕ АЛГОРИТМЫ. ТЕОРИЯ И ПРАКТИКА М.: Мир, 1980, 476 стр. Первые два автора известны советскому читателю по переводу их книги "Машинный подход к решению математических задач" (М.:Мир, 1977), написанной совместно с Дж.Фарраром. В данной книге предпринята попытка систематизации комбинаторных алгоритмов, выявления их общих черт и закономерностей. Подробно рассматриваются конкретные задачи использования комбинаторных алгоритмов, в частности очень важная для программирования задача сортировки данных. Каждая глава сопровождается достаточно подробной исторической справкой и большим числом упражнений. Книга будет полезной математикам-прикладникам, аспирантам и студентам, имеющим дело с задачами дискретной математики. Содержание От редактора перевода 6 Предисловие 7 Глава 1. Что такое комбинаторные вычисления? 11 1.1. Пример. Подсчет числа единиц в двоичном наборе 12 1.2. Проблема представления: коды, сохраняющие разности 17 1.3. Способы композиции 21 1.4. Способы декомпозиции 23 1.5. Классы алгоритмов 26 1.6. Анализ алгоритмов 36 1.7. Комментарии и ссылки 41 1.8. Упражнения 43 Глава 2. Представление комбинаторных объектов 45 2.1. Целые 45 2.2. Последовательности 48 2.2.1. Последовательное распределение 49 2.2.2. Связанное распределение 52 2.2.3. Стеки и очереди 55 2.3. Деревья 58 2.3.1. Представления 60 2.3.2. Прохождения 62 2.3.3. Длина путей 66 2.4. Множества и мультимножества 72 2.5. Комментарии и ссылки 80 2.6. Упражнения 82 Глава 3. Подсчет и оценивание 87 3.1. Асимптотики 88 3.2. Рекуррентные соотношения 94 3.2.1. Линейные рекуррентные соотношения с постоянными коэффициентами 94 3.2.2. Общие рекуррентные соотношения 98

description

Э.Рейнгольд, Ю.Нивергельт, Н.ДеоКОМБИНАТОРНЫЕ АЛГОРИТМЫ. ТЕОРИЯ И ПРАКТИКАМ.: Мир, 1980, 476 стр.

Transcript of Combinatorial Algorithm

Page 1: Combinatorial Algorithm

Э.Рейнгольд, Ю.Нивергельт, Н.Део КОМБИНАТОРНЫЕ АЛГОРИТМЫ. ТЕОРИЯ И ПРАКТИКА

М.: Мир, 1980, 476 стр. Первые два автора известны советскому читателю по переводу их книги

"Машинный подход к решению математических задач" (М.:Мир, 1977), написанной совместно с Дж.Фарраром. В данной книге предпринята попытка систематизации комбинаторных алгоритмов, выявления их общих черт и закономерностей. Подробно рассматриваются конкретные задачи использования комбинаторных алгоритмов, в частности очень важная для программирования задача сортировки данных. Каждая глава сопровождается достаточно подробной исторической справкой и большим числом упражнений.

Книга будет полезной математикам-прикладникам, аспирантам и студентам, имеющим дело с задачами дискретной математики.

Содержание От редактора перевода 6 Предисловие 7 Глава 1. Что такое комбинаторные вычисления? 11 1.1. Пример. Подсчет числа единиц в двоичном наборе 12 1.2. Проблема представления: коды, сохраняющие разности 17 1.3. Способы композиции 21 1.4. Способы декомпозиции 23 1.5. Классы алгоритмов 26 1.6. Анализ алгоритмов 36 1.7. Комментарии и ссылки 41 1.8. Упражнения 43 Глава 2. Представление комбинаторных объектов 45 2.1. Целые 45 2.2. Последовательности 48

2.2.1. Последовательное распределение 49 2.2.2. Связанное распределение 52 2.2.3. Стеки и очереди 55

2.3. Деревья 58 2.3.1. Представления 60 2.3.2. Прохождения 62 2.3.3. Длина путей 66

2.4. Множества и мультимножества 72 2.5. Комментарии и ссылки 80 2.6. Упражнения 82 Глава 3. Подсчет и оценивание 87 3.1. Асимптотики 88 3.2. Рекуррентные соотношения 94

3.2.1. Линейные рекуррентные соотношения с постоянными коэффициентами

94

3.2.2. Общие рекуррентные соотношения 98

Page 2: Combinatorial Algorithm

3.3. Производящие функции 103 3.4. Подсчет классов эквивалентности: теорема Пойа 109

3.4.1. Пример: раскраска бинарного дерева 110 3.4.2. Теорема Пойа и лемма Бернсайда 114

3.5. Комментарии и ссылки 118 3.6. Упражнения 119 Глава 4. Исчерпывающий поиск 124 4.1. Поиск с возвращением 124

4.1.1. Общий алгоритм 125 4.1.2. Усовершенствования 128 4.1.3. Оценка сложности выполнения 131 4.1.4. Два способа программирования 133 4.1.5. Пример. Оптимальные коды, сохраняющие разности 136 4.1.6. Метод ветвей и границ 140 4.1.7. Динамическое программирование 150

4.2. Методы решета 153 4.2.1. Нерекурсивное модульное решето 154 4.2.2. Рекурсивное решето 158 4.2.3. Решето, отбраковывающее изоморфные объекты 161

4.3. Приближения исчерпывающего поиска 162 4.4. Комментарии и ссылки 170 4.5. Упражнения 175 Глава 5. Порождение элементарных комбинаторных объектов 182 5.1. Перестановки различных элементов 184

5.1.1. Лексикографический порядок 184 5.1.2. Векторы инверсий 187 5.1.3. Вложенные циклы 189 5.1.4. Транспозиция смежных моментов 191 5.1.5. Случайные перестановки 194

5.2. Подмножества множеств 195 5.2.1. Коды Грея 196 5.2.2. k-подмножества (сочетания) 202

5.3. Композиции и разбиения целых чисел 213 5.3.1. Композиции 213 5.3.2. Разбиения 214

5.4. Комментарии и ссылки 218 5.5. Упражнения 222 Глава 6. Быстрый поиск 226 6.1. Поиск и другие операции над таблицами 226 6.2. Последовательный поиск 230 6.3. Логарифмический поиск в статических таблицах 235

6.3.1. Бинарный поиск 236 6.3.2. Оптимальные деревья бинарного поиска 240 6.3.3. Почти оптимальные деревья бинарного поиска 248

Page 3: Combinatorial Algorithm

6.3.4. Цифровой поиск 253 6.4. Логарифмический поиск в динамических таблицах 257

6.4.1. Случайные деревья бинарного поиска 258 6.4.2. Бинарные деревья, сбалансированные по высоте 261 6.4.3. Бинарные деревья, сбалансированные по весу 269 6.4.4. Сбалансированные сильно ветвящиеся деревья 277

6.5. Методы вычисления адреса 282 6.5.1. Хеширование и его варианты 283 6.5.2. Хеш-функции 288 6.5.3. Разрешение коллизий 291 6.5.4. Влияние коэффициента загрузки 293

6.6. Комментарии и ссылки 295 6.7. Упражнения 300 Глава 7. Сортировка 307 7.1. Внутренняя сортировка 308

7.1.1. Вставка 312 7.1.2. Обменная сортировка 314 7.1.3. Выбор 321 7.1.4. Распределяющая сортировка 326

7.2. Внешняя сортировка 329 7.3. Частичная сортировка 334

7.3.1. Выбор 335 7.3.2. Слияние 338

7.4. Комментарии и ссылки 341 7.5. Упражнения 344 Глава 8. Алгоритмы на графах 351 8.1. Представления 352 8.2. Связность и расстояние 356

8.2.1. Остовные деревья 357 8.2.2. Поиск в глубину 361 8.2.3. Двусвязность 366 8.2.4. Сильная связность 369 8.2.5. Транзитивное замыкание 374 8.2.6. Кратчайшие пути 377

8.3. Циклы 382 8.3.1. Фундаментальные множества циклов 382 8.3.2. Порождение всех циклов 384

8.4. Клики 389 8.5. Изоморфизм 396 8.6. Планарность 402 8.7. Комментарии и ссылки 424 8.8. Упражнения 433 Глава 9. Эквивалентность некоторых комбинаторных задач 441 9.1. Классы P и NP 441

Page 4: Combinatorial Algorithm

9.2. NP-трудные и NP-полные задачи 445 9.2.1. Выполнимость 446 9.2.2. Некоторые NP-полные задачи 450 9.2.3. Еще раз о задаче коммивояжера 456

9.3. Комментарии и ссылки 458 9.4. Упражнения 463 Предметный указатель 466

Предметный указатель Алгоритмы ближайшего соседа

163—165, 358—360, 425 - включения ближайшего города

165—170 - Евклида 105 - отыскания (см. также Алгоритм - объединения отыскания) 74 - самого дешевого включения 181 - слияния множеств (см. также

Алгоритмы слияния / объединения) 72—80, 358

- суммирования числа единиц в двоичном наборе 12—17, 24—25, 42

Алгоритмы на графах 352—440 - вершинная база 433 - вершинное множество обратных

связей 440 - гамильтонов цикл 452—456 - двусвязные компоненты 366—369,

426 - доминатор 439 - жадный алгоритм 74, 358, 425 - задача коммивояжера 140—145 - изоморфизм 396—402, 431—432,

459—460 - клика (максимальная) 433, 437, 451 - клики (все) 389—396, 430, 433, 437 - кратчайшие пути 333, 377—382,

428—429, 451, 452 - максимальное независимое

множество вершин 438 - мосты 435 - остовное дерево (минимальное)

357—360, 425, 433—434

- остовные деревья (все) 357—360, 425, 433—434

- планарность 402—424, 433, 438 - поиск в глубину 361—366, 426 - поиск в ширину 377—436 - покрытие вершин 452—453 - поток в сети 439—440, 461 - раскраска 440, 461—462 - реберное множество обратных

связей 440 - связные компоненты 364 - сильно связные компоненты 369—

373, 426, 436 - топологическая сортировка 365—

366, 427, 432 - транзитивное замыкание 374—376,

427—428, 436 - транзитивное сокращение 436 - циклы (все) 384—389, 429, 433, 437 - циклы (фундаментальное

множество) 382—384, 429, 437 - эйлеров путь 439 Анализ - алгоритмов 36—41 - сетей 351, 360 Асимптотики 38—94 Асимптотические ряды 90—91 Асимптотический рост 88, 90—91 Бернсайда лемма 114, 116—117 Беспорядки 224 Боры 255—256, 297, 462 Брат (в дереве) 59 Венок перестановок 224 Вершина (графа) 351 - последователь 354 - предшественник 355

Page 5: Combinatorial Algorithm

- смежная 356 - соседи 355 Вершинная база 439 Вершинное покрытие 452 Ветви и границы 140—150, 171, 360 Взвешенная длина пути 242, 249—

252 Включение - в бинарные деревья поиска 258 - в боры 258 - в очереди 56—58 - в последовательно размещенные

списки 49—51 - в сбалансированные по весам

бинарные деревья поиска 269—271

- в сбалансированные по высоте бинарные деревья поиска 261—266

- в связные списки 51 - в стеки 51 - в таблицу хеширования 287, 291—

293 - в упорядоченные хеш-таблицы 305 Вложенные циклы (в перестановке)

189—191 Внешние узлы (дерева) 58 Внутренние узлы (дерева) 58 Возвращение 87, 124—153, 168—170,

171, 183, 185, 196, 361, 386, 391 - ветви и границы 140—150, 171, 360 - динамическое программирование

150—153, 172, 243, 437, 442 - использование макрорасширений

133—134, 139, 171 - недетерминированный алгоритм

453, 454, 458 - общий алгоритм 125—128 - оценка сложности выполнения

131—133, 171 - применение к DP- кодам, 1, 135—

140, 171 - усовершенствования 128—131 Вращение 264—265, 274—276

- двойное 264—265, 276—277, 303 Выполнимость 446—450 Высота (дерева) 66 Гамильтонов цикл 452—456 Гармонические числа 93 Грамматический разбор 124 Граф 351 - ациклический 356 - взвешенный 354 - гомеоморфный 438 - двудольный 439 - двусвязный 366—369 - доминатор 439 - дополнение 438 - изолированный 366 - изоморфный 396—398 - Муна — Мозера 390—391, 430 - неориентированный 351 - неразделимый (см. двусвязный) - несвязный 356 - ориентированный 351 - планарный 402 - плотный 354 - подграф 356 - полный 359, 450 - представления 352—355 - простой 351, 354 - разделимый 366 - разреженный 354 - связный 356 - связные компоненты 356 - сильно связные компоненты 356,

369—374, 426, 435 Группа (перестановок) 112—118 Деревья 26—28, 58—72, 357 - бинарного поиска 162, 240—254 - бинарные 54, 107—109 - длина внешних путей 66—72, 239,

298, 311 - длина внутренних путей 66—72,

121—122, 240 - длина максимальная 69—70 - длина минимальная 70—72

Page 6: Combinatorial Algorithm

- естественное соответствие между бинарными деревьями и лесами 62, 64

- игры 126—149 - корневые 58, 357 - монотонные 249—253, 297 - остовные 357—361, 425—426, 433 - пирамида 250, 322—324 - полностью сбалансированные

бинарные 70, 239 - представления 60—62 - прошитые 84—85 - прохождения 62—66, 126 - пустые бинарные 59 - раскраска узлов 110—116 - расширенные бинарные 68 - расширенные тарные 86 - решений 26—28, 311 - сбалансированные 248—283, 261—

277, 297—298 - сбалансированные по весам 269—

277, 298, 303 - сбалансированные по высоте 261—

269, 298, 303 - сильно ветвящиеся 278—282, 298,

303 - случайные бинарные 249—253,

258—261, 297, 302 - тернарные 27—28 - деревья, 2, 3, 298 Детерминированный алгоритм 453 Дизъюнкт (в булевом выражении)

447 Динамическое программирование

150—153, 437, 442 Дважды связанный список 55 Двойное хеширование 292, 293—295 Естественный порядок (таблицы)

226, 294 Естественное соответствие (между

бинарными деревьями я лесами) 62, 64

Задачи коммивояжера 140—145, 150—153, 162—170, 354, 425, 445, 450, 456—458, 459

- о кёнигсбергских мостах 424 - о назначениях 179 - о потоке 439—440, 461 - о почтовых марках 175 - о расписании занятий 461 - о фальшивой монете 26—36, 43—

44, 58, 71—72 - о ферзях 127—131, 135, 136, 161—

162, 176 - покрытия (паркеты) 175 - составления расписаний 124, 175,

179, 351 - упаковки 179 Закон Зипфа 233, 234, 304 Золотое сечение 95, 156, 263—264 Имена 226 Инверсия (в перестановке) 187 - выбор инверсий 187—188, 219, 223,

315 Индуцированный подграф 356 Информационный поиск 390, 430 Исключение из бинарных деревьев

поиска 259 - из боров 258 - из очередей 56—58 - из последовательно размещенных

списков 49—51 - из сбалансированных сильно

ветвящихся деревьев 277—282 - из сбалансированных по весам

бинарных деревьев поиска 269—271

- из сбалансированных по высоте бинарных деревьев поиска 281—282

- из связанных списков 49—51 - из стеков 51 - из таблицы хеширования 258 - из характеристического вектора 51 Исследование операций 351, 425, 458 Исходные отрезки 329—330, 343

Page 7: Combinatorial Algorithm

Каскадное слияние 343, 349 Квадратичные вычеты 157 Квадратичные невычеты 157 Китайское кольцо 220 Классы алгоритмов 25—36, 309—310 Клики (в графах) 389 - максимальная клика 433—435 - порождение всех клик 389—396,

430, 433, 437 Ключ 228 Кодирование хеширования (см.

Методы вычисления адреса) 285

Коды Грея 43, 196—202, 220—221, 224—225

- двоично-отраженные 197—198, 221 - порождение 191—202, 205—212 - последовательность прохождения

197—198 Коды оптимальные 20—21, 23, 135—

140, 171 - сохраняющие разности 17, 25, 37—

41, 44, 196 - сложение порогов 22—23 - увеличение ранга 23, 37—38 - цепные 42 Коллизия 285—286 Комбинаторная математика 7, 41 Комбинаторные вычисления 22 Композиции (целых чисел) 213—214,

221—222, 225 Конъюнктивная нормальная форма

447 Корень (дерева) 58—59 Коэффициент загрузки 293—295 Кратчайшие пути (в графе) 377—382,

425, 428—429, 433, 459 - из одной вершины в другую 377—

378 - из одной вершины до всех

остальных вершин 380 - между всеми парами вершин 381—

382 - отрицательные веса 380—381

Крестики-нолики 145—147, 179 Куб Минусинского 177 Кубики сома 176 Куратовского теорема 438 Латинские квадраты 178 Лексикографический порядок в

бинарном дереве (см. также Симметричный порядок прохождения дерева) 64

- перестановок 181, 184—187, 219, 222—223

- разбиений 214—218, 225 - сочетаний 202—204, 221 Лексикографически меньше, чем 161,

184 Лес (= множество деревьев) 59, 62—

66 Линейные рекуррентные

соотношения 94—98 Линейные уравнения 462 Листья (дерева) (см. также Внешние

узлы) 58 Литерал (в булевском выражении)

447 Магические квадраты 177 Макроконструкции в возвращении

133—135, 139, 171 - в порождении перестановок 194,

220, 223 Максимум клик 433, 438, 451 Максимальное независимое

множество вершин 438 Максимальный и максимум 356 Маркова цепи 351 Маршрут коня 153 Массива размещение 49—50, 83 Математическая логика 458 Матрица (см. также Массива

размещение) весов 354 - инциденций 438 - логическое произведение 436 - перемножение 179, 428, 436 - разреженная 84, 462 - NP-полные задачи 462

Page 8: Combinatorial Algorithm

- связности 374 - соединений (== матрица

смежностей) 353 Методы вычисления адреса 282—299 - исключения Гаусса 462 Монте-Карло (в возвращении) 131—

133, 139, 171, 183 - решета 153—162, 173—174 - квадраты Фибоначчи 156—158, 175 - нерекурсивное модульное решето

154—158 - обобщенное модульное решето 155,

173 - отбраковка изоморфных объектов

161—162, 174 - простые числа 154—155, 158, 180 - рекурсивное решето 158—160 - Эратосфена решето 154—155, 158—

159 - U (последовательность Улама) 160,

174, 180 - цепочек 292—293 Минимум остовных деревьев 357—

361, 433 - покрытий вершин 452 Минимальный и минимум 356 Многопродуктовый поток 461 Многошаговый процесс решения 150 Множество 72 - обратных связей 440, 464 - вершинное 440, 464 - реберное 470 Мост (в графе) 436 Мультимножество 72 Мультипликативные функции

хеширования 290 Начальная ячейка

последовательности 52 Невыполнимость 450 Недетерминированные алгоритмы

453—445, 458 - для выполнимости 448 - для задачи коммивояжера 445 - для поиска с возвращением 458

Неоднородные рекуррентные соотношения 97—98

Несравнимые прямоугольники 175 Неудача (функция) 444 Неустойчивость 98 Нижние границы - алгоритмов выбора 342 - слияния 338—340 - сортировки 309—313 Новое хеширование 287 Нумерация Штралера 69 Обратное ребро 363 Ограничение 129 Однородные рекуррентные

соотношения 94—97 Оптимальность алгоритмов 16—17 Оптимальные боры 462 Оптимальные коды, сохраняющие

разности 20—23, 135—140, 171 Орграф (= ориентированный граф)

351 Ортогональные латинские квадраты

178 Основание системы счисления 46, 49 - двоичной 46, 195 - десятичной 46 - основание r 46 - смешанное 47—48 - с убывающими факториалами 48,

191 - с факториалами 48, 184, 188 - уравновешенной тернарной 83 Отец (в дереве) 59—60 Открытая адресация 291 Отрезки исходные 329—330 Отсечение ветвей 129 Отыскание середины квадрата 290 Очередь 55—58 - последовательная реализация 56—

57 - связанное распределение 57—58 - с двумя концами (=дек) 84 - с приоритетом 84 Ошибка 97

Page 9: Combinatorial Algorithm

- абсолютная 96 - относительная 97 Паросочетание (в графах) 439 Перестановки 110—118, 182, 184—

195, 218—219 - беспорядки 224 - векторы инверсии 187—188 - венки 224 - группы 112 - лексикографический порядок 181—

187, 222—223 - порядок минимального изменения

191—194, 220, 223 - представление вложенными

циклами 189—194, 219 - представление цикла 112 - случайные 194—195, 220, 223, 224 Петля (в графе) 351 Пирамида 250, 322—324 Пандиагональные магические

квадраты 178 Пентамино 176 Подграфы 356 - изоморфизм 459 - индуцированные 356 - максимальные полные (=клики) 389 - полные 450 Поиск 125—170, 226—295 - быстрый 226—296 - в глубину 134, 366, 426, 761 - в ширину 377, 466 - вычисление адреса (хеширование)

240—253, 258—277, 296—298 - исчерпывающий 170—174 - общий бинарный 236—240, 296, 301 - последовательный 230—235 - приближения 162—170 - самоорганизующиеся файлы 254,

295, 301 - цифровой (боры) 253—257 Поле 228 - INFO 52 - LINK 52 - NAME 241

Полиномиально сводимый 460 Полиномиальный алгоритм 460 Полустепень захода вершины 397 - исхода вершины 397 Понятие « большое», 88—99 - «о-малое» 88—89 Поперечное ребро 370 Порог (кода, сохраняющего

разности) 19 Порождение подмножеств 195—212 - все подмножества 196—202 - сочетания 202—212 Порядок минимального изменения

183 - для перестановок 191—193, 220,

223 - для сочетаний 204—205, 221 Последователь (вершины) 354 Последовательная реализация 56—57 - очередь 56 - последовательности 56—57 - стеки 55 - таблицы 234 Порядок (в дереве) 59 Последовательности (см. также

Связанное распределение) 48—58

- переходов 196 - сумм 180 Поток в сети 425, 439—440, 461 Потомок (в дереве) 59 Правило Де Моргана 447 Программирование линейное 459 - целочисленное 464 Представление комбинаторных

объектов 44—86 - графы 352—356 - деревья 60—62 - леса 60—62 - множества 72—80 - целые 45—48 Представление чисел 46—49 - вычетами 83 - двоичная система 46

Page 10: Combinatorial Algorithm

- десятичная система 46 - система по основанию r 46—47 - система Фибоначчи 83 - смешанные системы счисления 47 - уравновешенная тернарная система

82 Предшественник (вершины) 355 Преобразование числа в его

представлении в системе счисления 47—48

Преобразуемая (задача) 446, 459 Приближение Стирлинга 93, 120, 311 Приведенные латинские квадраты

178 Прикладные задачи 349, 351 Принцип оптимальности 150 Производящие функции 86, 103—

109, 118, 211 - изменение масштаба 106—107 - линейные операции 104 - свертка 107—109 - сдвиг начала 104—105 - таблица 105 - частичные суммы 106 Пропускная способность 354, 439 Простой путь (в графе) 356 Пространство имен 225 Прохождение дерева в глубину 62—

66, 84, 126 - симметричный порядок 63, 66 - снизу вверх 62, 63, 84 Псевдоквадраты 180 Путь (к орграфе) 356 - простой 356 - цикл 356 Разбиения (множеств) 220, 225 Разбиения (целых чисел) 213—218,

221, 225 - лексикографический порядок 214,

225 - словарный порядок 215—216 - случайные 216—218, 222 Разделяющая вершина (==точка

сочленения) 366

Размещение памяти для массивов 50, 84

- для последовательностей 36—52, 254

- последовательное распределение 49—51, 56—58, 234

- связанное 53—58 Разностные уравнения (рекуррентные

соотношения) 118 Разрез 439 Разреженная матрица 84, 462 Разреженные полиномы 463 Разрешение коллизий 285, 291—293 Ранг (кодов, сохраняющих разности)

19, 37—38, 44 Раскраска 110—114, 440, 461—462 Раскрашиваемость 461—462 Расстояние Хемминга 19 Ребро (графа) 351 Ребро, направленное вперед 370 Рекуррентные соотношения 86, 94—

103, 107—108, 118 - неоднородные 97—98 - однородные 94—95 Ряд Тейлора 103 Сбалансирование 74—77, 249—253,

261—277, 297—298 Сбор мусора 54 Свертка последовательностей 107—

109 Сводимая задача 460 Связанное распределение (см. также Связанный список) 52—55 - очереди 55—58 - последовательности 52—55 - стека 55—58 Связанный список 52—55, 84, 234 Сжатие путей (в алгоритме

объединения/отыскания) 76 Симметрическая разность 383 Симметричный порядок

прохождения дерева 64 Система переписывания 458 Слияние 129, 151, 308, 338—340

Page 11: Combinatorial Algorithm

- бинарное 338—340, 344, 350 - прямое 338—339, 349 - нижняя граница 339 Сложение порогов (в кодах,

сохраняющих разности) 22—23 Случайные конфигурации

беспорядки 224 - венок перестановок 224 - деревья 250—251, 258—261, 297 - перестановки 194—195, 220, 222—

224 - разбиения (целых чисел) 216—218 - сочетания 209, 220 Смежные вершины 356 Собственный адрес 285 Совершенное распределение (в

многофазном слиянии) 332 Сортировка быстрая 316—321, 344—

350 - внешняя 329—334 - внутренняя 308—329 - вставками 312—314, 344 - выбор с замещением 330 - выбором 321—326 - каскадное слияние 343 - линейный алгоритм выбора 335 - многофазное слияние 332 - наименьшая занумерованная

вершина 404 - нижние оценки 309—312 - обменная 314—321 - перечислением 344 - пирамидальная 324—326, 342 - пузырьковая 314—316 - распределяющая 308, 326—329 - с уменьшающимся шагом

(сортировка Шелла) 344 - слиянием 330—334, 338—340 - топологическая 365—366, 427 - устойчивая 347 - цифровая обменная 346 - цифровая распределяющая 327, 347 - шейкер-сортировка 345 Сосед (вершины) 355

Составное число 363 Список ребер 354 Способы декомпозиции 23—25, 150 - с возвращением 130—131 Способы композиции 21—23 Стек 55—58 Сток 433 Структура смежности 354—355 Счастливые числа 158, 173, 180 Сын (в дереве) 59 Табличный порядок 227 Таблица - динамическая 229, 257 - статическая 229, 235—236 Теорема о максимальном потоке и

минимальном разрезе 440 Теория вероятностей 351 - вычислимости 459 - графов 424—425 - информации 35 - кодирования 296 - перечисления Пойа 117 Точка решетки 225 - сочленения 366 Транзитивное замыкание 374—377,

427, 436 Транзитивное сокращение 436 Транзитивный орграф 436 Транспортные сети 439 Трехсвязность 427 Указатель 228 - FATHER 60 - LEFT 61 - RIGHT 61 Упаковка множества 464 Упорядочение дерева (=техника

перестройки дерева) 130, 141 Упорядоченные прохождения дерева

(см. также Симметричный порядок прохождения дерева) 63

Упорядоченные таблицы хеширования 299, 305

Успех 444

Page 12: Combinatorial Algorithm

Файл 228 Фибоначчи (= Леонардо из Пизы) 94 - деревья (= наиболее асимметричные

деревья, сбалансированные по высоте) 262—263

- квадраты 156, 157, 173 - поиск 300—301 - числа 94—96, 156, 157, 173 - числовая система 83 Фундаментальное множество циклов

(в графе) 382—386 Функции хеширования 288—291, 299 - метод середины квадрата 290 - методы деления 291 - мультипликативные методы 290 Характеристический вектор

(последовательности) 51—52 Хеширование (см. также Методы

вычисления адреса) 73, 282—288

- середины квадрата 290 Хроматическое число 440 Циклы в графе 356 - в подстановках 112—113 - вложенные в перестановках 189—

191 - порождение всех циклов в графе

384—389, 429, 433, 437 - фундаментальное множество 382—

386, 429 Числа Спрэга 180 Эйлера постоянная 93, 217, 424, 438 Эйлеров путь 439 Эратосфена решето 154—155, 158 \alpha-отсечение 147 \alpha-\beta-отсечение 145—150, 172,

179 В-деревья {см. Сильно ветвящиеся

деревья) 278—282, 298, 303 \beta-отсечение 147 DFS-дерево 363—364 DP-t-код (см. также Коды,

сохраняющие разности) 49

\varepsilon-субоптимальность 457—458

get-cell 54 H(D_i, D_j) = Хеммингово

расстояние между двоичными последовательностями D_i и D_j, т. е. число разрядов, в которых они различаются 19

\mathcal{H}(p_ n\ge, \ldots, p_n, энтропия, =, \sum\limits_{i=1}^n, p_i\lgp_i, для, 1, 2, 35

\mathcal{H}(\alpha) - частный случай энтропии =-\alpha\lg\alpha-( \alpha, \lg, \alpha, 1, 1, 272

H_n-n -е гармоническое число =\sum\limits_{i= 1}^n, 1/i=\lnn+o, 1, 93

ILLIAC I 42 k-выполнимость 448 K-подмножества (сочетания) 202—

212, 220 - лексикографический порядок 202—

204, 220 - порядок минимального изменения

204—212 - случайные K-множества 212, 220 \Lambda(пустой указатель) 53 lg* (повторный логарифм по

основанию 2, 77 lowlink (v) 373 lowpt (v) 367—368 Maniac II 343 NP 441 NP-полные задачи вершинное

множество обратных связей 464 - вершинное покрытие 452 - выполнимость 446, 459 - выполнимость, 3, 448, 459 - гамильтонов цикл 453—454 - изоморфизм подграфов 459 - матричные задачи 462 - многопродуктовый поток 461 - полный подграф 450—451

Page 13: Combinatorial Algorithm

- построение бора раскрашиваемость 461—462

- реберное множество обратных связей 464

- составление расписания 461 - упаковка множеств 464 - целочисленное программирование

464 NP-трудные задачи задача

коммивояжера 456—458, 464—465

- максимум клик 451 - минимальное покрытие вершин 452 - разреженные полиномы 463

NP-трудный 445 nexlopt (v) 404 num (v) 363 overflow 56 P 441 Padj (v) 406 Pr(x} (вероятность события х) 148 rand (k, l) 194 выполнимость, 3, 448 U (= последовательность Улама) 160 underflow 57 WB (\alpha) 270 Y-пентамино 177

Page 14: Combinatorial Algorithm
Page 15: Combinatorial Algorithm
Page 16: Combinatorial Algorithm
Page 17: Combinatorial Algorithm
Page 18: Combinatorial Algorithm
Page 19: Combinatorial Algorithm
Page 20: Combinatorial Algorithm
Page 21: Combinatorial Algorithm
Page 22: Combinatorial Algorithm
Page 23: Combinatorial Algorithm
Page 24: Combinatorial Algorithm
Page 25: Combinatorial Algorithm
Page 26: Combinatorial Algorithm
Page 27: Combinatorial Algorithm
Page 28: Combinatorial Algorithm
Page 29: Combinatorial Algorithm
Page 30: Combinatorial Algorithm
Page 31: Combinatorial Algorithm
Page 32: Combinatorial Algorithm
Page 33: Combinatorial Algorithm
Page 34: Combinatorial Algorithm
Page 35: Combinatorial Algorithm
Page 36: Combinatorial Algorithm
Page 37: Combinatorial Algorithm
Page 38: Combinatorial Algorithm
Page 39: Combinatorial Algorithm
Page 40: Combinatorial Algorithm
Page 41: Combinatorial Algorithm
Page 42: Combinatorial Algorithm
Page 43: Combinatorial Algorithm
Page 44: Combinatorial Algorithm
Page 45: Combinatorial Algorithm
Page 46: Combinatorial Algorithm
Page 47: Combinatorial Algorithm
Page 48: Combinatorial Algorithm
Page 49: Combinatorial Algorithm
Page 50: Combinatorial Algorithm
Page 51: Combinatorial Algorithm
Page 52: Combinatorial Algorithm
Page 53: Combinatorial Algorithm
Page 54: Combinatorial Algorithm
Page 55: Combinatorial Algorithm
Page 56: Combinatorial Algorithm
Page 57: Combinatorial Algorithm
Page 58: Combinatorial Algorithm
Page 59: Combinatorial Algorithm
Page 60: Combinatorial Algorithm
Page 61: Combinatorial Algorithm
Page 62: Combinatorial Algorithm
Page 63: Combinatorial Algorithm
Page 64: Combinatorial Algorithm
Page 65: Combinatorial Algorithm
Page 66: Combinatorial Algorithm
Page 67: Combinatorial Algorithm
Page 68: Combinatorial Algorithm
Page 69: Combinatorial Algorithm
Page 70: Combinatorial Algorithm
Page 71: Combinatorial Algorithm
Page 72: Combinatorial Algorithm
Page 73: Combinatorial Algorithm
Page 74: Combinatorial Algorithm
Page 75: Combinatorial Algorithm
Page 76: Combinatorial Algorithm
Page 77: Combinatorial Algorithm
Page 78: Combinatorial Algorithm
Page 79: Combinatorial Algorithm
Page 80: Combinatorial Algorithm
Page 81: Combinatorial Algorithm
Page 82: Combinatorial Algorithm
Page 83: Combinatorial Algorithm
Page 84: Combinatorial Algorithm
Page 85: Combinatorial Algorithm
Page 86: Combinatorial Algorithm
Page 87: Combinatorial Algorithm
Page 88: Combinatorial Algorithm
Page 89: Combinatorial Algorithm
Page 90: Combinatorial Algorithm
Page 91: Combinatorial Algorithm
Page 92: Combinatorial Algorithm
Page 93: Combinatorial Algorithm
Page 94: Combinatorial Algorithm
Page 95: Combinatorial Algorithm
Page 96: Combinatorial Algorithm
Page 97: Combinatorial Algorithm
Page 98: Combinatorial Algorithm
Page 99: Combinatorial Algorithm
Page 100: Combinatorial Algorithm
Page 101: Combinatorial Algorithm
Page 102: Combinatorial Algorithm
Page 103: Combinatorial Algorithm
Page 104: Combinatorial Algorithm
Page 105: Combinatorial Algorithm
Page 106: Combinatorial Algorithm
Page 107: Combinatorial Algorithm
Page 108: Combinatorial Algorithm
Page 109: Combinatorial Algorithm
Page 110: Combinatorial Algorithm
Page 111: Combinatorial Algorithm
Page 112: Combinatorial Algorithm
Page 113: Combinatorial Algorithm
Page 114: Combinatorial Algorithm
Page 115: Combinatorial Algorithm
Page 116: Combinatorial Algorithm
Page 117: Combinatorial Algorithm
Page 118: Combinatorial Algorithm
Page 119: Combinatorial Algorithm
Page 120: Combinatorial Algorithm
Page 121: Combinatorial Algorithm
Page 122: Combinatorial Algorithm
Page 123: Combinatorial Algorithm
Page 124: Combinatorial Algorithm
Page 125: Combinatorial Algorithm
Page 126: Combinatorial Algorithm
Page 127: Combinatorial Algorithm
Page 128: Combinatorial Algorithm
Page 129: Combinatorial Algorithm
Page 130: Combinatorial Algorithm
Page 131: Combinatorial Algorithm
Page 132: Combinatorial Algorithm
Page 133: Combinatorial Algorithm
Page 134: Combinatorial Algorithm
Page 135: Combinatorial Algorithm
Page 136: Combinatorial Algorithm
Page 137: Combinatorial Algorithm
Page 138: Combinatorial Algorithm
Page 139: Combinatorial Algorithm
Page 140: Combinatorial Algorithm
Page 141: Combinatorial Algorithm
Page 142: Combinatorial Algorithm
Page 143: Combinatorial Algorithm
Page 144: Combinatorial Algorithm
Page 145: Combinatorial Algorithm
Page 146: Combinatorial Algorithm
Page 147: Combinatorial Algorithm
Page 148: Combinatorial Algorithm
Page 149: Combinatorial Algorithm
Page 150: Combinatorial Algorithm
Page 151: Combinatorial Algorithm
Page 152: Combinatorial Algorithm
Page 153: Combinatorial Algorithm
Page 154: Combinatorial Algorithm
Page 155: Combinatorial Algorithm
Page 156: Combinatorial Algorithm
Page 157: Combinatorial Algorithm
Page 158: Combinatorial Algorithm
Page 159: Combinatorial Algorithm
Page 160: Combinatorial Algorithm
Page 161: Combinatorial Algorithm
Page 162: Combinatorial Algorithm
Page 163: Combinatorial Algorithm
Page 164: Combinatorial Algorithm
Page 165: Combinatorial Algorithm
Page 166: Combinatorial Algorithm
Page 167: Combinatorial Algorithm
Page 168: Combinatorial Algorithm
Page 169: Combinatorial Algorithm
Page 170: Combinatorial Algorithm
Page 171: Combinatorial Algorithm
Page 172: Combinatorial Algorithm
Page 173: Combinatorial Algorithm
Page 174: Combinatorial Algorithm
Page 175: Combinatorial Algorithm
Page 176: Combinatorial Algorithm
Page 177: Combinatorial Algorithm
Page 178: Combinatorial Algorithm
Page 179: Combinatorial Algorithm
Page 180: Combinatorial Algorithm
Page 181: Combinatorial Algorithm
Page 182: Combinatorial Algorithm
Page 183: Combinatorial Algorithm
Page 184: Combinatorial Algorithm
Page 185: Combinatorial Algorithm
Page 186: Combinatorial Algorithm
Page 187: Combinatorial Algorithm
Page 188: Combinatorial Algorithm
Page 189: Combinatorial Algorithm
Page 190: Combinatorial Algorithm
Page 191: Combinatorial Algorithm
Page 192: Combinatorial Algorithm
Page 193: Combinatorial Algorithm
Page 194: Combinatorial Algorithm
Page 195: Combinatorial Algorithm
Page 196: Combinatorial Algorithm
Page 197: Combinatorial Algorithm
Page 198: Combinatorial Algorithm
Page 199: Combinatorial Algorithm
Page 200: Combinatorial Algorithm
Page 201: Combinatorial Algorithm
Page 202: Combinatorial Algorithm
Page 203: Combinatorial Algorithm
Page 204: Combinatorial Algorithm
Page 205: Combinatorial Algorithm
Page 206: Combinatorial Algorithm
Page 207: Combinatorial Algorithm
Page 208: Combinatorial Algorithm
Page 209: Combinatorial Algorithm
Page 210: Combinatorial Algorithm
Page 211: Combinatorial Algorithm
Page 212: Combinatorial Algorithm
Page 213: Combinatorial Algorithm
Page 214: Combinatorial Algorithm
Page 215: Combinatorial Algorithm
Page 216: Combinatorial Algorithm
Page 217: Combinatorial Algorithm
Page 218: Combinatorial Algorithm
Page 219: Combinatorial Algorithm
Page 220: Combinatorial Algorithm
Page 221: Combinatorial Algorithm
Page 222: Combinatorial Algorithm
Page 223: Combinatorial Algorithm
Page 224: Combinatorial Algorithm
Page 225: Combinatorial Algorithm
Page 226: Combinatorial Algorithm
Page 227: Combinatorial Algorithm
Page 228: Combinatorial Algorithm
Page 229: Combinatorial Algorithm
Page 230: Combinatorial Algorithm
Page 231: Combinatorial Algorithm
Page 232: Combinatorial Algorithm
Page 233: Combinatorial Algorithm
Page 234: Combinatorial Algorithm
Page 235: Combinatorial Algorithm
Page 236: Combinatorial Algorithm
Page 237: Combinatorial Algorithm
Page 238: Combinatorial Algorithm
Page 239: Combinatorial Algorithm
Page 240: Combinatorial Algorithm
Page 241: Combinatorial Algorithm
Page 242: Combinatorial Algorithm
Page 243: Combinatorial Algorithm
Page 244: Combinatorial Algorithm
Page 245: Combinatorial Algorithm
Page 246: Combinatorial Algorithm
Page 247: Combinatorial Algorithm
Page 248: Combinatorial Algorithm
Page 249: Combinatorial Algorithm
Page 250: Combinatorial Algorithm
Page 251: Combinatorial Algorithm
Page 252: Combinatorial Algorithm
Page 253: Combinatorial Algorithm
Page 254: Combinatorial Algorithm
Page 255: Combinatorial Algorithm
Page 256: Combinatorial Algorithm
Page 257: Combinatorial Algorithm
Page 258: Combinatorial Algorithm
Page 259: Combinatorial Algorithm
Page 260: Combinatorial Algorithm
Page 261: Combinatorial Algorithm
Page 262: Combinatorial Algorithm
Page 263: Combinatorial Algorithm
Page 264: Combinatorial Algorithm
Page 265: Combinatorial Algorithm
Page 266: Combinatorial Algorithm
Page 267: Combinatorial Algorithm
Page 268: Combinatorial Algorithm
Page 269: Combinatorial Algorithm
Page 270: Combinatorial Algorithm
Page 271: Combinatorial Algorithm
Page 272: Combinatorial Algorithm
Page 273: Combinatorial Algorithm
Page 274: Combinatorial Algorithm
Page 275: Combinatorial Algorithm
Page 276: Combinatorial Algorithm
Page 277: Combinatorial Algorithm
Page 278: Combinatorial Algorithm
Page 279: Combinatorial Algorithm
Page 280: Combinatorial Algorithm
Page 281: Combinatorial Algorithm
Page 282: Combinatorial Algorithm
Page 283: Combinatorial Algorithm
Page 284: Combinatorial Algorithm
Page 285: Combinatorial Algorithm
Page 286: Combinatorial Algorithm
Page 287: Combinatorial Algorithm
Page 288: Combinatorial Algorithm
Page 289: Combinatorial Algorithm
Page 290: Combinatorial Algorithm
Page 291: Combinatorial Algorithm
Page 292: Combinatorial Algorithm
Page 293: Combinatorial Algorithm
Page 294: Combinatorial Algorithm
Page 295: Combinatorial Algorithm
Page 296: Combinatorial Algorithm
Page 297: Combinatorial Algorithm
Page 298: Combinatorial Algorithm
Page 299: Combinatorial Algorithm
Page 300: Combinatorial Algorithm
Page 301: Combinatorial Algorithm
Page 302: Combinatorial Algorithm
Page 303: Combinatorial Algorithm
Page 304: Combinatorial Algorithm
Page 305: Combinatorial Algorithm
Page 306: Combinatorial Algorithm
Page 307: Combinatorial Algorithm
Page 308: Combinatorial Algorithm
Page 309: Combinatorial Algorithm
Page 310: Combinatorial Algorithm
Page 311: Combinatorial Algorithm
Page 312: Combinatorial Algorithm
Page 313: Combinatorial Algorithm
Page 314: Combinatorial Algorithm
Page 315: Combinatorial Algorithm
Page 316: Combinatorial Algorithm
Page 317: Combinatorial Algorithm
Page 318: Combinatorial Algorithm
Page 319: Combinatorial Algorithm
Page 320: Combinatorial Algorithm
Page 321: Combinatorial Algorithm
Page 322: Combinatorial Algorithm
Page 323: Combinatorial Algorithm
Page 324: Combinatorial Algorithm
Page 325: Combinatorial Algorithm
Page 326: Combinatorial Algorithm
Page 327: Combinatorial Algorithm
Page 328: Combinatorial Algorithm
Page 329: Combinatorial Algorithm
Page 330: Combinatorial Algorithm
Page 331: Combinatorial Algorithm
Page 332: Combinatorial Algorithm
Page 333: Combinatorial Algorithm
Page 334: Combinatorial Algorithm
Page 335: Combinatorial Algorithm
Page 336: Combinatorial Algorithm
Page 337: Combinatorial Algorithm
Page 338: Combinatorial Algorithm
Page 339: Combinatorial Algorithm
Page 340: Combinatorial Algorithm
Page 341: Combinatorial Algorithm
Page 342: Combinatorial Algorithm
Page 343: Combinatorial Algorithm
Page 344: Combinatorial Algorithm
Page 345: Combinatorial Algorithm
Page 346: Combinatorial Algorithm
Page 347: Combinatorial Algorithm
Page 348: Combinatorial Algorithm
Page 349: Combinatorial Algorithm
Page 350: Combinatorial Algorithm
Page 351: Combinatorial Algorithm
Page 352: Combinatorial Algorithm
Page 353: Combinatorial Algorithm
Page 354: Combinatorial Algorithm
Page 355: Combinatorial Algorithm
Page 356: Combinatorial Algorithm
Page 357: Combinatorial Algorithm
Page 358: Combinatorial Algorithm
Page 359: Combinatorial Algorithm
Page 360: Combinatorial Algorithm
Page 361: Combinatorial Algorithm
Page 362: Combinatorial Algorithm
Page 363: Combinatorial Algorithm
Page 364: Combinatorial Algorithm
Page 365: Combinatorial Algorithm
Page 366: Combinatorial Algorithm
Page 367: Combinatorial Algorithm
Page 368: Combinatorial Algorithm
Page 369: Combinatorial Algorithm
Page 370: Combinatorial Algorithm
Page 371: Combinatorial Algorithm
Page 372: Combinatorial Algorithm
Page 373: Combinatorial Algorithm
Page 374: Combinatorial Algorithm
Page 375: Combinatorial Algorithm
Page 376: Combinatorial Algorithm
Page 377: Combinatorial Algorithm
Page 378: Combinatorial Algorithm
Page 379: Combinatorial Algorithm
Page 380: Combinatorial Algorithm
Page 381: Combinatorial Algorithm
Page 382: Combinatorial Algorithm
Page 383: Combinatorial Algorithm
Page 384: Combinatorial Algorithm
Page 385: Combinatorial Algorithm
Page 386: Combinatorial Algorithm
Page 387: Combinatorial Algorithm
Page 388: Combinatorial Algorithm
Page 389: Combinatorial Algorithm
Page 390: Combinatorial Algorithm
Page 391: Combinatorial Algorithm
Page 392: Combinatorial Algorithm
Page 393: Combinatorial Algorithm
Page 394: Combinatorial Algorithm
Page 395: Combinatorial Algorithm
Page 396: Combinatorial Algorithm
Page 397: Combinatorial Algorithm
Page 398: Combinatorial Algorithm
Page 399: Combinatorial Algorithm
Page 400: Combinatorial Algorithm
Page 401: Combinatorial Algorithm
Page 402: Combinatorial Algorithm
Page 403: Combinatorial Algorithm
Page 404: Combinatorial Algorithm
Page 405: Combinatorial Algorithm
Page 406: Combinatorial Algorithm
Page 407: Combinatorial Algorithm
Page 408: Combinatorial Algorithm
Page 409: Combinatorial Algorithm
Page 410: Combinatorial Algorithm
Page 411: Combinatorial Algorithm
Page 412: Combinatorial Algorithm
Page 413: Combinatorial Algorithm
Page 414: Combinatorial Algorithm
Page 415: Combinatorial Algorithm
Page 416: Combinatorial Algorithm
Page 417: Combinatorial Algorithm
Page 418: Combinatorial Algorithm
Page 419: Combinatorial Algorithm
Page 420: Combinatorial Algorithm
Page 421: Combinatorial Algorithm
Page 422: Combinatorial Algorithm
Page 423: Combinatorial Algorithm
Page 424: Combinatorial Algorithm
Page 425: Combinatorial Algorithm
Page 426: Combinatorial Algorithm
Page 427: Combinatorial Algorithm
Page 428: Combinatorial Algorithm
Page 429: Combinatorial Algorithm
Page 430: Combinatorial Algorithm
Page 431: Combinatorial Algorithm
Page 432: Combinatorial Algorithm
Page 433: Combinatorial Algorithm
Page 434: Combinatorial Algorithm
Page 435: Combinatorial Algorithm
Page 436: Combinatorial Algorithm
Page 437: Combinatorial Algorithm
Page 438: Combinatorial Algorithm
Page 439: Combinatorial Algorithm
Page 440: Combinatorial Algorithm
Page 441: Combinatorial Algorithm
Page 442: Combinatorial Algorithm
Page 443: Combinatorial Algorithm
Page 444: Combinatorial Algorithm
Page 445: Combinatorial Algorithm
Page 446: Combinatorial Algorithm
Page 447: Combinatorial Algorithm
Page 448: Combinatorial Algorithm
Page 449: Combinatorial Algorithm
Page 450: Combinatorial Algorithm
Page 451: Combinatorial Algorithm
Page 452: Combinatorial Algorithm
Page 453: Combinatorial Algorithm
Page 454: Combinatorial Algorithm
Page 455: Combinatorial Algorithm
Page 456: Combinatorial Algorithm
Page 457: Combinatorial Algorithm
Page 458: Combinatorial Algorithm
Page 459: Combinatorial Algorithm
Page 460: Combinatorial Algorithm
Page 461: Combinatorial Algorithm
Page 462: Combinatorial Algorithm
Page 463: Combinatorial Algorithm
Page 464: Combinatorial Algorithm
Page 465: Combinatorial Algorithm
Page 466: Combinatorial Algorithm
Page 467: Combinatorial Algorithm
Page 468: Combinatorial Algorithm
Page 469: Combinatorial Algorithm
Page 470: Combinatorial Algorithm
Page 471: Combinatorial Algorithm
Page 472: Combinatorial Algorithm
Page 473: Combinatorial Algorithm
Page 474: Combinatorial Algorithm
Page 475: Combinatorial Algorithm
Page 476: Combinatorial Algorithm
Page 477: Combinatorial Algorithm
Page 478: Combinatorial Algorithm
Page 479: Combinatorial Algorithm
Page 480: Combinatorial Algorithm
Page 481: Combinatorial Algorithm
Page 482: Combinatorial Algorithm
Page 483: Combinatorial Algorithm
Page 484: Combinatorial Algorithm
Page 485: Combinatorial Algorithm