Алгоритмы. С примерами на Python
Хайнеман Джордж
Код товара: 4980030
(0 оценок)Оценить
ОтзывНаписать отзыв
ВопросЗадать вопрос
1 / 14
PDF
1 / 14
Издательство:
Оригинальное название:
Learning Algorithms. A Programmer's Guide to Writing Better Code
Отмечено тегами
Описание
Характеристики
Когда нужно, чтобы программа работала быстро и занимала поменьше памяти, профессионального программиста выручают знание алгоритмов и практика их применения. Эта книга - как раз про практику. Ее автор, Джордж Хайнеман, предлагает краткое, но четкое и последовательное описание основных алгоритмов, которые можно эффективно использовать в большинстве языков программирования. О том, какими методами решаются различные вычислительные задачи, стоит знать и разработчикам, и тестировщикам, и интеграторам.
код в Майшоп
4980030
возрастная категория
18+ (нет данных)
количество томов
1
количество страниц
304 стр.
размеры
240x170x18 мм
ISBN
978-5-4461-1963-9
тип бумаги
офсетная (60-220 г/м2)
цвет
Белый
вес
478 г
язык
Русский
переплёт
Мягкая обложка
Содержание
Предисловие
Введение
Для кого эта книга
Исходные тексты
Условные обозначения
Благодарности
От издательства
Глава 1. Решение задач
Что такое алгоритм
Поиск наибольшего значения в произвольной
последовательности
Подсчет действий
Как оценить эффективность алгоритма по схеме
Поиск двух наибольших значений в произвольном
списке
Турнирное дерево
Сложность по времени и сложность по памяти
Заключение
Тренировочные задания
Глава 2. Анализ алгоритмов
Как оценить сложность с помощью эмпирической
модели
Умножать быстрее, чем в столбик
Классы вычислительной сложности
Асимптотический анализ
Подсчет всех действий
Подсчет всех байтов
Одна дверь захлопнулась - другая откроется
Двоичный поиск в упорядоченном массиве
Немногим сложнее, чем п
Двух зайцев одним выстрелом
Как все это работает
Приближенная кривая или четкие границы?
Заключение
Тренировочные задания
Глава 3. Хороший хеш - залог успеха
Соответствие значений ключам
Хеш-функции и хеш-суммы
Хеш-таблица: хранение данных по ключу
Определение коллизий и их разрешение
последовательным просмотром
Раздельное хранение цепочек в списках
Оценка
Расширяемые хеш-таблицы
Оценка производительности динамических хеш-
таблиц
Динамические массивы
Идеальный хеш
Проход таблицы циклом
Заключение
Тренировочные задания
Глава 4. Могучая куча
Двоичная куча
Добавление пары в кучу
Снятие элемента с кучи
Хранение двоичной кучи в массиве
Как погружаться и всплывать
Заключение
Тренировочные задания
Глава 5. Сортировка без магии
Обмен элементов в сортировке
Сортировка выбором
Структура квадратичных алгоритмов сортировки
Оценка производительности сортировки выбором и
сортировки вставками
Рекурсия: разделяй и властвуй!
Сортировка слиянием
Быстрая сортировка
Пирамидальная сортировка
Сравнение быстродействия алгоритмов со
сложностью O(N log N)
Сортировка Тима
Заключение
Тренировочные задания
Глава 6. Двоичные деревья: бесконечность под
рукой
Введение
Двоичные деревья поиска
Поиск значения в двоичном дереве
Удаление значения из двоичного дерева
Обход двоичного дерева
Исследование быстродействия двоичных деревьев
поиска
Сбалансированные двоичные деревья
Производительность сбалансированных деревьев
Хранение пар (ключ, значение) в двоичном дереве
Двоичное дерево как приоритетная очередь
Заключение
Тренировочные задания
Глава 7. Графы: всегда на связи!
В графе удобно хранить полезную информацию
Обход лабиринта в глубину
Другой способ обхода: в ширину
Ориентированные графы
Взвешенные графы
Алгоритм Дейкстры
Полный поиск кратчайших путей
Алгоритм Флойда - Уоршелла
Заключение
Тренировочные задания
Глава 8. Подведем итоги
Встроенные типы данных Python
Реализация стека в Python
Реализация очередей в Python
Реализация кучи и приоритетной очереди
Что изучать дальше?
Об авторе
Иллюстрация на обложке
Введение
Для кого эта книга
Исходные тексты
Условные обозначения
Благодарности
От издательства
Глава 1. Решение задач
Что такое алгоритм
Поиск наибольшего значения в произвольной
последовательности
Подсчет действий
Как оценить эффективность алгоритма по схеме
Поиск двух наибольших значений в произвольном
списке
Турнирное дерево
Сложность по времени и сложность по памяти
Заключение
Тренировочные задания
Глава 2. Анализ алгоритмов
Как оценить сложность с помощью эмпирической
модели
Умножать быстрее, чем в столбик
Классы вычислительной сложности
Асимптотический анализ
Подсчет всех действий
Подсчет всех байтов
Одна дверь захлопнулась - другая откроется
Двоичный поиск в упорядоченном массиве
Немногим сложнее, чем п
Двух зайцев одним выстрелом
Как все это работает
Приближенная кривая или четкие границы?
Заключение
Тренировочные задания
Глава 3. Хороший хеш - залог успеха
Соответствие значений ключам
Хеш-функции и хеш-суммы
Хеш-таблица: хранение данных по ключу
Определение коллизий и их разрешение
последовательным просмотром
Раздельное хранение цепочек в списках
Оценка
Расширяемые хеш-таблицы
Оценка производительности динамических хеш-
таблиц
Динамические массивы
Идеальный хеш
Проход таблицы циклом
Заключение
Тренировочные задания
Глава 4. Могучая куча
Двоичная куча
Добавление пары в кучу
Снятие элемента с кучи
Хранение двоичной кучи в массиве
Как погружаться и всплывать
Заключение
Тренировочные задания
Глава 5. Сортировка без магии
Обмен элементов в сортировке
Сортировка выбором
Структура квадратичных алгоритмов сортировки
Оценка производительности сортировки выбором и
сортировки вставками
Рекурсия: разделяй и властвуй!
Сортировка слиянием
Быстрая сортировка
Пирамидальная сортировка
Сравнение быстродействия алгоритмов со
сложностью O(N log N)
Сортировка Тима
Заключение
Тренировочные задания
Глава 6. Двоичные деревья: бесконечность под
рукой
Введение
Двоичные деревья поиска
Поиск значения в двоичном дереве
Удаление значения из двоичного дерева
Обход двоичного дерева
Исследование быстродействия двоичных деревьев
поиска
Сбалансированные двоичные деревья
Производительность сбалансированных деревьев
Хранение пар (ключ, значение) в двоичном дереве
Двоичное дерево как приоритетная очередь
Заключение
Тренировочные задания
Глава 7. Графы: всегда на связи!
В графе удобно хранить полезную информацию
Обход лабиринта в глубину
Другой способ обхода: в ширину
Ориентированные графы
Взвешенные графы
Алгоритм Дейкстры
Полный поиск кратчайших путей
Алгоритм Флойда - Уоршелла
Заключение
Тренировочные задания
Глава 8. Подведем итоги
Встроенные типы данных Python
Реализация стека в Python
Реализация очередей в Python
Реализация кучи и приоритетной очереди
Что изучать дальше?
Об авторе
Иллюстрация на обложке
Отзывы
Вопросы
Поделитесь своим мнением об этом товаре с другими покупателями — будьте первыми!
Дарим бонусы за отзывы!
За какие отзывы можно получить бонусы?
- За уникальные, информативные отзывы, прошедшие модерацию
Как получить больше бонусов за отзыв?
- Публикуйте фото или видео к отзыву
- Пишите отзывы на товары с меткой "Бонусы за отзыв"
Задайте вопрос, чтобы узнать больше о товаре
Если вы обнаружили ошибку в описании товара «Алгоритмы. С примерами на Python» (авторы: Хайнеман Джордж), то выделите её мышкой и нажмите Ctrl+Enter. Спасибо, что помогаете нам стать лучше!






