Алгоритмы. Руководство по разработке

В наличии Цена за шт.

1300

Количество
Купить

Акции и скидки Поделиться


  • Артикул:00-01027143
  • Автор: Стивен С. Скиена
  • ISBN: 978-5-9775-0560-4
  • Тираж: 1000 экз.
  • Обложка: Твердый переплет
  • Издательство: БХВ-Петербург (все книги издательства)
  • Город: СПб
  • Страниц: 720
  • Формат: 70х100 1/16
  • Год: 2019
  • Вес: 1480 г
Развернуть ▼

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

Оглавление
Предисловие
Читателю
Преподавателю
Благодарности
Ограничение ответственности
Часть I. Практическая разработка алгоритмов
Глава 1. Введение в разработку алгоритмов
1.1. Оптимизация маршрута робота
1.2. Задача календарного планирования
1.3. Обоснование правильности алгоритмов
1.3.1. Представление алгоритмов
1.3.2. Задачи и свойства
1.3.3. Демонстрация неправильности алгоритма
1.3.4. Индукция и рекурсия
1.3.5. Суммирование
1.4. Моделирование задачи
1.4.1. Комбинаторные объекты
1.4.2. Рекурсивные объекты
1.5. Истории из жизни
1.6. История из жизни. Моделирование проблемы ясновидения
1.7. Упражнения
Глава 2. Анализ алгоритмов
2.1. Модель вычислений RAM
2.1.1. Анализ сложности наилучшего, наихудшего и среднего случая.
2.2. Асимптотические обозначения
2.3. Скорость роста и отношения доминирования
2.3.1. Отношения доминирования
2.4. Работа с асимптотическими обозначениями
2.4.1. Сложение функций
2.4.2. Умножение функций
2.5. Оценка эффективности
2.5.1. Сортировка методом выбора
2.5.2. Сортировка вставками
2.5.3. Сравнение строк
2.5.4. Умножение матриц
2.6. Логарифмы и их применение
2.6.1. Логарифмы и двоичный поиск
2.6.2. Логарифмы и деревья
2.6.3. Логарифмы и биты
2.6.4. Логарифмы и умножение
2.6.5. Быстрое возведение в степень
2.6.6. Логарифмы и сложение
2.6.7. Логарифмы и система уголовного судопроизводства
2.7. Свойства логарифмов
2.8. История из жизни. Загадка пирамид
2.9. Анализ высшего уровня (*)
2.9.1. Малораспространенные функции
2.9.2. Пределы и отношения доминирования
2.10. Упражнения
Глава 3. Структуры данных
3.1. Смежные и связные структуры данных
3.1.1. Массивы
3.1.2. Указатели и связные структуры данных
3.1.3. Сравнение
3.2. Стеки и очереди
3.3. Словари
3.4. Двоичные деревья поиска
3.4.1. Реализация двоичных деревьев
3.4.2. Эффективность двоичных деревьев поиска
3.4.3. Сбалансированные деревья поиска
3.5. Очереди с приоритетами
3.6. История из жизни. Триангуляция
3.7. Хэширование и строки
3.7.1. Коллизии
3.7.2. Эффективный метод поиска строк посредством хэширования
3.7.3. Выявление дубликатов с помощью хэширования
3.8. Специализированные структуры данных
3.9. История из жизни. Геном человека
3.10. Упражнения
Глава 4. Сортировка и поиск
4.1. Применение сортировки
4.2. Практические аспекты сортировки
4.3. Пирамидальная сортировка
4.3.1. Пирамиды
4.3.2. Создание пирамиды
4.3.3. Наименьший элемент пирамиды
4.3.4. Быстрый способ создания пирамиды (*)
4.3.5. Сортировка вставками
4.4. История из жизни. Билет на самолет
4.5. Сортировка слиянием. Метод "разделяй и властвуй"
4.6. Быстрая сортировка. Рандомизированная версия
4.6.1. Ожидаемое время исполнения алгоритма быстрой сортировки
4.6.2. Рандомизированные алгоритмы
4.6.3. Действительно ли алгоритм быстрой сортировки работает быстро?
4.7. Сортировка распределением. Метод блочной сортировки
4.7.1. Нижние пределы для сортировки
4.8. История из жизни. Адвокат Скиена
4.9. Двоичный поиск и связанные с ним алгоритмы
4.9.1. Частота вхождения элемента
4.9.2. Односторонний двоичный поиск
4.9.3. Корни числа
4.10. Метод "разделяй и властвуй"
4.10.1. Рекуррентные соотношения
4.10.2. Рекуррентные соотношения метода "разделяй и властвуй"
4.10.3. Решение рекуррентных соотношений типа "разделяй и властвуй"
4.11. Упражнения
Глава 5. Обход графов
5.1. Разновидности графов
5.1.1. Граф дружеских отношений
5.2. Структуры данных для графов
5.3. История из жизни. Жертва закона Мура
5.4. История из жизни. Создание графа
5.5. Обход графа
5.6. Обход в ширину
5.6.1. Применение обхода
5.6.2. Поиск путей
5.7. Применение обхода в ширину
5.7.1. Компоненты связности
5.7.2. Раскраска графов двумя цветами
5.8. Обход в глубину
5.9. Применение обхода в глубину
5.9.1. Поиск циклов
5.9.2. Шарниры графа
5.10. Обход в глубину ориентированных графов
5.10.1. Топологическая сортировка
5.10.2. Сильно связные компоненты
5.11. Упражнения
Глава 6. Алгоритмы для работы со взвешенными графами
6.1. Минимальные остовные деревья
6.1.1. Алгоритм Прима
6.1.2. Алгоритм Крускала
6.1.3. Поиск-объединение
6.1.4. Разновидности остовных деревьев
6.2. История из жизни. И все на свете только сети
6.3. Поиск кратчайшего пути
6.3.1. Алгоритм Дейкстры
6.3.2. Кратчайшие пути между всеми парами вершин
6.3.3. Транзитивное замыкание
6.4. История из жизни. Печатаем с помощью номеронабирателя
6.5. Потоки в сетях и паросочетание в двудольных графах
6.5.1. Паросочетание в двудольном графе
6.5.2. Вычисление потоков в сети
6.6. Разрабатывайте не алгоритмы, а графы
6.7. Упражнения
Глава 7. Комбинаторный поиск и эвристические методы
7.1. Перебор с возвратом
7.1.1. Генерирование всех подмножеств
7.1.2. Генерирование всех перестановок
7.1.3. Генерирование всех путей в графе
7.2. Отсечение вариантов поиска
7.3. Судоку
7.4. История из жизни. Покрытие шахматной доски
7.5. Эвристические методы перебора
7.5.1. Произвольная выборка
7.5.2. Локальный поиск
7.5.3. Имитация отжига
7.5.4. Применение метода имитации отжига
7.6. История из жизни. Только это не радио
7.7. История из жизни. Отжиг массивов
7.8. Другие эвристические методы поиска
7.9. Параллельные алгоритмы
7.10. История из жизни. ’’Торопиться в никуда”
7.11. Упражнения
Глава 8. Динамическое программирование
8.1. Кэширование и вычисления
8.1.1. Генерирование чисел Фибоначчи методом рекурсии
8.1.2. Генерирование чисел Фибоначчи посредством кэширования
8.1.3. Генерирование чисел Фибоначчи посредством динамического программирования
8.1.4. Биномиальные коэффициенты
8.2. Поиск приблизительно совпадающих строк
8.2.1. Применение рекурсии для вычисления расстояния редактирования
8.2.2. Применение динамического программирования для вычисления расстояния редактирования
8.2.3. Восстановление пути
8.2.4. Разновидности расстояния редактирования
8.3. Самая длинная возрастающая последовательность
8.4. История из жизни. Эволюция омара
8.5. Задача разбиения
8.6. Синтаксический разбор
8.6.1. Триангуляция с минимальным весом
8.7. Ограничения динамического программирования. Задача коммивояжера
8.7.1. Вопрос правильности алгоритмов динамического программирования.
8.7.2. Эффективность алгоритмов динамического программировгшия
8.8. История из жизни. Динамическое программирование и язык Prolog
8.9. История из жизни. Сжатие текста для штрих-кодов
8.10. Упражнения
Глава 9. Труднорешаемые задачи и аппроксимирующие алгоритмы
9.1. Сведение задач
9.1.1. Ключевая идея
9.1.2. Задачи разрешимости
9.2. Сведение для создания новых алгоритмов
9.2.1. Поиск ближайшей пары
9.2.2. Максимальная возрастающая подпоследовательность
9.2.3. Наименьшее общее кратное
9.2.4. Выпуклая оболочка (*)
9.3. Простые примеры сведения сложных задач
9.3.1. Гамильтонов цикл
9.3.2. Независимое множество и вершинное покрытие
9.3.3. Задача о клике
9.4. Задача выполнимости булевых формул
9.4.1. Задача выполнимости в 3-конъюнктивной нормальной форме
9.5. Нестандартные сведения
9.5.1. Целочисленное программирование
9.5.2. Вершинное покрытие
9.6. Искусство доказательства сложности
9.7. История из жизни. Наперегонки со временем
9.8. История из жизни. Полный провал
9.9. Сравнение классов сложности Р и NP
9.9.1. Верификация решения и поиск решения
9.9.2. Классы сложности Р и NP
9.9.3. Почему задача выполнимости является самой сложной из всех сложных задач?
9.9.4. NP-сложность по сравнению с NP-полнотой
9.10. Решение NP-полных задач
9.10.1. Аппроксимация вершинного покрытия
9.10.2. Задача коммивояжера в евклидовом пространстве
9.10.3. Максимальный бесконтурный подграф
9.10.4. Задача о покрытии множества
9.11. Упражнения
Глава 10. Как разрабатывать алгоритмы
Часть II. Каталог алгоритмических задач
Глава 11. Описание каталога
Глава 12. Структуры данных
12.1. Словарь
12.2. Очереди с приоритетами
12.3. Суффиксные деревья и массивы
12.4. Графы
12.5. Множества
12.6. Kd-деревья
Глава 13. Численные задачи
13.1. Решение системы линейных уравнений
13.2. Уменьшение ширины ленты матрицы
13.3. Умножение матриц
13.4. Определители и перманенты
13.5. Условная и безусловная оптимизация
13.6. Линейное программирование
13.7. Генерирование случайных чисел
13.8. Разложение на множители и проверка чисел на простоту
13.9. Арифметика произвольной точности
13.10. Задача о рюкзаке
13.11. Дискретное преобразование Фурье
Глава 14. Комбинаторные задачи
14.1. Сортировка
14.2. Поиск
14.3. Поиск медианы и выбор элементов
14.4. Генерирование перестановок
14.5. Генерирование подмножеств
14.6. Генерирование разбиений
14.7. Генерирование графов
14.8. Календарные вычисления
14.9. Календарное планирование
14.10. Выполнимость
Глава 15. Задачи на графах с полиномиальным временем исполнения
15.1. Компоненты связности
15.2. Топологическая сортировка
15.3. Минимальные остовные деревья
15.4. Поиск кратчайшего пути
15.5. Транзитивное замыкание и транзитивная редукция
15.6. Паросочетание
15.7. Задача поиска эйлерова цикла и задача китайского почтальона
15.8. Реберная и вершинная связность
15.9. Потоки в сети
15.10. Рисование графов
15.11. Рисование деревьев
15.12. Планарность
Глава 16. Сложные задачи на графах
16.1. Задача о клике
16.2. Независимое множество
16.3. Вершинное покрытие
16.4. Задача коммивояжера
16.5. Гамильтонов цикл
16.6. Разбиение графов
16.7. Вершинная раскраска
16.8. Реберная раскраска
16.9. Изоморфизм графов
16.10. Дерево Штейнера
16.11. Разрывающее множество ребер или вершин
Глава 17. Вычислительная геометрия
17.1. Элементарные задачи вычислительной геометрии
17.2. Выпуклая оболочка
17.3. Триангуляция
17.4. Диаграммы Вороного
17.5. Поиск ближайшей точки
17.6. Поиск в области
17.7. Местоположение точки
17.8. Выявление пересечений
17.9. Разложение по контейнерам
17.10. Преобразование к срединной оси
17.11. Разбиение многоугольника на части
17.12. Упрощение многоугольников
17.13. Выявление сходства фигур
17.14. Планирование перемещений
17.15. Конфигурации прямых
17.16. Сумма Минковского
Глава 18. Множества и строки
18.1. Поиск покрытия множества
18.2. Задача укладки множества
18.3. Сравнение строк
18.4. Нечеткое сравнение строк
18.5. Сжатие текста
18.6. Криптография
18.7. Минимизация конечного автомата
18.8. Максимальная общая подстрока
18.9. Поиск минимальной общей надстроки
Глава 19. Ресурсы
19.1. Программные системы
19.1.1. Библиотека LEDA
19.1.2. Библиотека CGAL
19.1.3. Библиотека Boost
19.1.4. Библиотека GOBLIN
19.1.5. Библиотека Netlib
19.1.6. Коллекция алгоритмов ассоциации ACM
19.1.7. Сайты SourceForge и CPAN
19.1.8. Система Stanford GraphBase
19.1.9. Пакет Combinatorica
19.1.10. Программы из книг
19.2. Источники данных
19.3. Библиографические ресурсы
19.4. Профессиональные консалтинговые услуги
Список литературы
Предметный указатель


Оставьте отзыв о товаре
Рекомендуем

Артикул 00-01028629

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

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

1300 руб.

Купить
×

Диски

Журналы и бланки

Журналы для автодорог, дорожного хозяйстваЖурналы для АЗС и АЗГСЖурналы для аптекЖурналы для архивовЖурналы для аттракционовЖурналы для банковЖурналы для бассейновЖурналы для бухгалтерииЖурналы для газовых хозяйств, газораспределительных систем, ГАЗПРОМаЖурналы для гостиниц, общежитий, хостеловЖурналы для грузоподъемных механизмовЖурналы для делопроизводстваЖурналы для драгметалловЖурналы для ЖКХЖурналы для канатных дорог, фуникулеровЖурналы для кладбищЖурналы для конструкторских, научно-техническая документацияЖурналы для лесных хозяйствЖурналы для лифтовЖурналы для медицинских учрежденийЖурналы для МЧСЖурналы для нефтебазЖурналы для нефтепромысла, нефтепроводовЖурналы для образовательных учрежденийЖурналы для парикмахерских, салонов красоты, маникюрных, педикюрных кабинетовЖурналы для проверки и контроля госорганами, контролирующими организациямиЖурналы для промышленностиЖурналы для работ с повышенной опасностьюЖурналы для регулирования алкогольного рынкаЖурналы для сельских хозяйств, ветеринарииЖурналы для складовЖурналы для снегоплавильных пунктовЖурналы для стройки, строительстваЖурналы для тепловых энергоустановок, котельныхЖурналы для транспортаЖурналы для туризмаЖурналы для учреждений культуры, библиотек, музеевЖурналы для церкви, религиозных организацийЖурналы для шахт, рудников, метрополитенов, подземных сооруженийЖурналы для электроустановокЖурналы и бланки для армии, вооруженных силЖурналы и бланки для нотариусов, юристов, адвокатовЖурналы и бланки для организаций пищевого производства, общепита и пищевых блоковЖурналы и бланки для организаций, занимающихся охраной объектов и частных лицЖурналы и бланки для ФТС РФ (таможни)Журналы и бланки по экологииЖурналы и бланки, используемые в торговле, бытовом обслуживанииЖурналы и бланки, относящиеся к нескольким отраслямЖурналы по геодезии, геологииЖурналы по метрологииЖурналы по охране труда и технике безопасностиЖурналы по пожарной безопасностиЖурналы по психологииЖурналы по санитарии, проверкам СЭСЖурналы по связиЖурналы по эксплуатации зданий и сооруженийЖурналы по энергетикеЖурналы, бланки, формы для кадровых работЖурналы, бланки, формы документов для органов прокуратуры и суда, минюста, пенитенциарной системыЖурналы, бланки, формы документов МВД РФ, РосгвардииКомплекты документов и журналовОбложки для журналов и удостоверенийСамокопирующиеся бланки

Знаки безопасности, таблички, стенды

Вспомогательные знаки, таблички-наклейкиЗапрещающие знакиЗнаки для инвалидовЗнаки для уборки и сбора мусораЗнаки на автомобильЗнаки пожарной безопасностиЗнаки электробезопасностиИнформационные знаки для строительных площадокМедицинские и санитарные знакиНаклейкиПредписывающие знакиПредупреждающие знакиСтендыУказательные знакиЭвакуационные знакиЮмористические знаки

Календари

Книги

Букинистическая литератураГОСТы, ОСТыДетская литератураДомашний кругДругоеИскусство. Культура. ФилологияКниги в электронном видеКниги издательства "Комсомольская правда"Компьютеры и интернетКосмосНаука. Техника. МедицинаНормативные правовые актыОбщественные и гуманитарные наукиОхрана труда, обеспечение безопасностиПодарочные книгиПутешествия. Отдых. Хобби. СпортРелигия. Оккультизм. ЭзотерикаРостехнадзорСанПины, СП, МУ, МР, ГНСборники рецептур блюд для предприятий общественного питанияСНиП, СП, СО,СТО, РД, НП, ПБ, МДК, МДС, ВСНУчебный годХудожественная литератураЭкономическая литератураЭнциклопедии, справочники, словари

Курвиметры

Ленты с тиснением

Линейки

Авиационные и военные линейкиДетские линейкиМедицинские линейкиПортновские линейкиТехнические линейкиТрафареты с чертежными шрифтамиЧертежные линейки

Маркировочная продукция

Маркировка трубопровода "Вода"Маркировка трубопровода "Воздух"Маркировка трубопровода "Газ"Маркировка трубопровода "Жидкость"Маркировка трубопровода "Кислота"Маркировка трубопровода "Пар"Маркировка трубопровода "Прочие вещества"Маркировка трубопровода "Щелочь"

Материалы для типографии (мини-типографии)

Бумага для оргтехникиКлейПереплетные материалыПленка для печати и ламинацииФольга для тиснения

Металлические изделия (металлическая мебель, конструкции, навесы)

Металлическая мебельМеталлические изделия для дачи и дома

Носки и портянки

Одноразовая одежда

Охрана труда

Печати и штампы

Медицинские печати и штампыОснастки, самонаборные штампыПечати и штампы для бухгалтерии и делопроизводстваПечати и штампы для водителейПечать фирмы (организации, компании, подразделения, отдела)Штампы по техническому контролю, учету и хранению

Плакаты

Погоны министерств и ведомств

Подарки нашим покупателям

Полотенца

Портреты знаменитых людей

Сувениры

Бизнес сувениры, корпоративные подаркиБрелкиГимн России. Эксклюзивное графическое оформление в багетном обрамленииГудки и Рожки охотничьиЗажигалкиКружки для термопереносаКружки подарочныеПодарочные наборы игрПредметы интерьераСувениры, подарки для мужчин

Тир

Рогатки спортивные

Ткани

Товары "Юнармия"

Береты

Товары для дома и офиса

Грамоты и благодарностиИндикаторы стерилизацииКанцелярские товарыКаски, защитные очки, маскиКухонные принадлежностиОгнетушителиПланы эвакуацииСамоспасателиСредства дезинфекцииТовары для ремонтаФитолампы и прожекторыХозяйственные товарыЭлектроудлинители, тройники, катушкиЭлектроустановочные изделия

Товары для здоровья, БАДы

Аюрведические товарыСредства гигиены, косметика из минералов Мертвого моря

Товары для развития, игрушки

Бумажные модели

Товары для спорта, туризма и охоты

Походные сумки, рюкзаки и мешочки для храненияСигнальное снаряжениеТовары для фитнеса

Удостоверения, Свидетельства

Зачетные книжки, студенческие билетыУдостоверения для спортивных секцийУдостоверения рабочих различных специальностей

Упаковка, упаковочные материалы

Коробки картонные

Членские книжки

ГК, ГСК, членские книжки, пропуска и пр.Садоводческие книжки, членские книжки СНТ
;