Основы современных алгоритмов. 2-е издание

В учебном пособии обсуждаются алгоритмы решения наиболее широко распространенных классов задач, покрывающих практически всю область программирования: поиск и сортировка, численные алгоритмы и алгоритмы на графах. Особое внимание уделено алгоритмам параллельной обработки, редко освещаемым в литературе на русском языке. В дополнении ко 2-му изданию на русском языке даны сведения по теории алгоритмов, оценкам трудоемкости и новейшим алгоритмам, не вошедшие в первоначальный вариант книги. Изложение неформальное и чрезвычайно подробное, с большим количеством упражнений, позволяющих вести самоконтроль. Книга нужна всем, кому приходится самостоятельно писать программы — от программистов банковских систем до научных работников.
Название: Основы современных алгоритмов. 2-е издание
Автор: Макконнелл Дж.
Издательство: Техносфера
Год: 2004
Страниц: 368
Формат: PDF
Размер: 9,51 МБ
ISBN: 5-94836-005-9
Качество: Отличное
Серия или Выпуск: Мир программирования
Содержание:
Предисловие
1. Основы анализа алгоритмов
1.1. Что такое анализ?
1.2. Что подсчитывать и что учитывать
1.3. Необходимые математические сведения
1.4. Скорости роста.
1.5. Алгоритмы вида «разделяй и властвуй»
1.6. Рекуррентные соотношения
1.7. Анализ программ
2. Алгоритмы поиска и выборки
2.1. Последовательный поиск
2.2. Двоичный поиск
2.3. Выборка
2.4. Упражнение по программированию
3. Алгоритмы сортировки
3.1. Сортировка вставками
3.2. Пузырьковая сортировка
3.3. Сортировка Шелла
3.4. Корневая сортировка
3.5. Пирамидальная сортировка
3.6. Сортировка слиянием
3.7. Быстрая сортировка
3.8. Внешняя многофазная сортировка слиянием
3.9. Дополнительные упражнения
3.10. Упражнения по программированию
4. Численные алгоритмы
4.1. Вычисление значений многочленов
4.2. Умножение матриц
4.3. Решение линейных уравнений
5. Алгоритмы сравнения с образцом
5.1. Сравнение строк
5.2. Приблизительное сравнение строк
5.3. Упражнения по программированию
6. Алгоритмы на графах
6.1. Основные понятия теории графов
6.2. Структуры данных для представления графов
6.3. Алгоритмы обхода в глубину и по уровням
6.4. Алгоритм поиска минимального остовного дерева
6.5. Алгоритм поиска кратчайшего пути
6.6. Алгоритм определения компонент двусвязности
6.7. Разбиения множеств
6.8. Упражнения по программированию
7. Параллельные алгоритмы
7.1. Введение в параллелизм
7.2. Модель PRAM
7.3. Простые параллельные операции
7.4. Параллельный поиск
7.5. Параллельная сортировка
7.6. Параллельные численные алгоритмы
7.7. Параллельные алгоритмы на графах
8. Недетерминированные алгоритмы
8.1. Что такое NP?
8.2. Типичные NP задачи
8.3. Какие задачи относятся к классу NP?
8.4. Проверка возможных решений
9. Другие алгоритмические инструменты
9.1. Жадные приближенные алгоритмы
9.2. Вероятностные алгоритмы
9.3. Динамическое программирование
9.4. Упражнения по программированию
А. Таблица случайных чисел
Б. Генерация псевдослучайных чисел
Б.1. Случайная последовательность в произвольном интервале
Б.2. Пример применения
Б.3. Итоги
В. Ответы к упражнениям
Литература
Дополнение
Д.1. Элементы теории алгоритмов
Д.1.1. Введение в теорию алгоритмов
Д. 1.2. Формализация понятия алгоритма
Д.1.3. Машина Поста
Д.1.4. Машина Тьюринга
Д.1.5. Алгоритмически неразрешимые проблемы
Д. 1.6. Сложностные классы задач и проблема P=NP
Д. 1.7. Классы открытых и закрытых задач и теоретическая нижняя граница временной ложности
Д.2. Оценки трудоемкости
Д.2.1. Функция трудоемкости и система обозначений
Д.2.2. Классификация алгоритмов на основе функции трудоемкости
Д.2.3. Элементарные операции в процедурном языке высокого уровня
Д.2.4. Методика анализа основных алгоритмических конструкций
Д.2.5. Примеры анализа трудоемкости алгоритмов
Д.2.6. Анализ сложности рекурсивных алгоритмов
Д.2.7. Трудоемкость рекурсивной реализации алгоритмов
Д.2.8. Методика подсчета вершин рекурсивного дерева
Д.2.9. Переход к временным оценкам
Д.2.10. Оценка ресурсной эффективности алгоритмов
Д.3. Идеи современных алгоритмов
Д.3.1. Алгоритмы и простые числа
Д.3.2. Генетические алгоритмы
Д.3.3. Муравьиные алгоритмы
Предисловие
1. Основы анализа алгоритмов
1.1. Что такое анализ?
1.2. Что подсчитывать и что учитывать
1.3. Необходимые математические сведения
1.4. Скорости роста.
1.5. Алгоритмы вида «разделяй и властвуй»
1.6. Рекуррентные соотношения
1.7. Анализ программ
2. Алгоритмы поиска и выборки
2.1. Последовательный поиск
2.2. Двоичный поиск
2.3. Выборка
2.4. Упражнение по программированию
3. Алгоритмы сортировки
3.1. Сортировка вставками
3.2. Пузырьковая сортировка
3.3. Сортировка Шелла
3.4. Корневая сортировка
3.5. Пирамидальная сортировка
3.6. Сортировка слиянием
3.7. Быстрая сортировка
3.8. Внешняя многофазная сортировка слиянием
3.9. Дополнительные упражнения
3.10. Упражнения по программированию
4. Численные алгоритмы
4.1. Вычисление значений многочленов
4.2. Умножение матриц
4.3. Решение линейных уравнений
5. Алгоритмы сравнения с образцом
5.1. Сравнение строк
5.2. Приблизительное сравнение строк
5.3. Упражнения по программированию
6. Алгоритмы на графах
6.1. Основные понятия теории графов
6.2. Структуры данных для представления графов
6.3. Алгоритмы обхода в глубину и по уровням
6.4. Алгоритм поиска минимального остовного дерева
6.5. Алгоритм поиска кратчайшего пути
6.6. Алгоритм определения компонент двусвязности
6.7. Разбиения множеств
6.8. Упражнения по программированию
7. Параллельные алгоритмы
7.1. Введение в параллелизм
7.2. Модель PRAM
7.3. Простые параллельные операции
7.4. Параллельный поиск
7.5. Параллельная сортировка
7.6. Параллельные численные алгоритмы
7.7. Параллельные алгоритмы на графах
8. Недетерминированные алгоритмы
8.1. Что такое NP?
8.2. Типичные NP задачи
8.3. Какие задачи относятся к классу NP?
8.4. Проверка возможных решений
9. Другие алгоритмические инструменты
9.1. Жадные приближенные алгоритмы
9.2. Вероятностные алгоритмы
9.3. Динамическое программирование
9.4. Упражнения по программированию
А. Таблица случайных чисел
Б. Генерация псевдослучайных чисел
Б.1. Случайная последовательность в произвольном интервале
Б.2. Пример применения
Б.3. Итоги
В. Ответы к упражнениям
Литература
Дополнение
Д.1. Элементы теории алгоритмов
Д.1.1. Введение в теорию алгоритмов
Д. 1.2. Формализация понятия алгоритма
Д.1.3. Машина Поста
Д.1.4. Машина Тьюринга
Д.1.5. Алгоритмически неразрешимые проблемы
Д. 1.6. Сложностные классы задач и проблема P=NP
Д. 1.7. Классы открытых и закрытых задач и теоретическая нижняя граница временной ложности
Д.2. Оценки трудоемкости
Д.2.1. Функция трудоемкости и система обозначений
Д.2.2. Классификация алгоритмов на основе функции трудоемкости
Д.2.3. Элементарные операции в процедурном языке высокого уровня
Д.2.4. Методика анализа основных алгоритмических конструкций
Д.2.5. Примеры анализа трудоемкости алгоритмов
Д.2.6. Анализ сложности рекурсивных алгоритмов
Д.2.7. Трудоемкость рекурсивной реализации алгоритмов
Д.2.8. Методика подсчета вершин рекурсивного дерева
Д.2.9. Переход к временным оценкам
Д.2.10. Оценка ресурсной эффективности алгоритмов
Д.3. Идеи современных алгоритмов
Д.3.1. Алгоритмы и простые числа
Д.3.2. Генетические алгоритмы
Д.3.3. Муравьиные алгоритмы
Скачать Основы современных алгоритмов. 2-е издание
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->depositfiles.com<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->letitbit.net<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->uploadbox.com<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->4files.net<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->free-share.ru<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->turbobit.net<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->depositfiles.com<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->letitbit.net<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->uploadbox.com<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->4files.net<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->free-share.ru<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
<!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin--><!--dle_leech_begin-->turbobit.net<!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end--><!--dle_leech_end-->
