Алгоритмы с нуля, 2024.
Погрузитесь в мир алгоритмов! Разберитесь в их принципах, особенностях проектирования и практического применения.
Вы познакомитесь с различными видами алгоритмов, узнаете их сильные и слабые стороны и поймете, в каких контекстах они лучше всего работают. На практических примерах увидите, как эти мощные инструменты используются для решения задач в информатике, анализе данных, искусственном интеллекте и других областях.
Каждая глава содержит понятные объяснения, наглядные примеры и задачи, помогающие закрепить изученный материал. Особый акцент сделан на вычислительном мышлении и анализе эффективности алгоритмов — важнейших навыках в области современных технологий.
Книга «Алгоритмы с нуля» послужит ценным ресурсом и для новичков, и для профессионалов, желающих отточить свои навыки.

Что такое алгоритм.
Алгоритм — это набор инструкций, пошаговая процедура, которую можно применять к различным видам задач. Задачами может быть что угодно: от выпечки торта до нахождения наибольшего общего делителя двух чисел.
Алгоритмы могут быть простыми или очень сложными в зависимости от решаемой задачи. Их можно использовать в самых разных областях — от математики до информатики — для достижения конкретных целей. Фактически алгоритмы являются важной частью программирования и применяются при создании программ, работающих на компьютерах и других электронных устройствах. Помимо этого, алгоритмы используются и в таких областях, как инженерия, медицина и финансы, для решения сложных задач.
ОГЛАВЛЕНИЕ.
Кто мы.
Наша философия.
Наш опыт.
Исходный код примеров.
Предисловие.
Введение.
О чем эта книга.
Кому адресована книга.
Как пользоваться изданием.
От издательства.
Глава 1. Введение в алгоритмы.
1.1. Что такое алгоритм.
1.1.1. Характеристики хорошего алгоритма.
1.1.2. Как используются алгоритмы.
1.1.3. Краткое подведение итогов и некоторые моменты для размышления.
1.2. Важность алгоритмов в информатике.
1.2.1. Алгоритмы лежат в основе нашего цифрового мира.
1.2.2. Алгоритмы повышают эффективность.
1.2.3. Алгоритмы лежат в основе передовых технологий.
1.2.4. Будущие последствия и достижения в сфере алгоритмов.
1.3. Основы вычислительного мышления.
1.3.1. Декомпозиция.
1.3.2. Выявление закономерностей.
1.3.3. Абстрагирование.
1.3.4. Алгоритмическое мышление.
1.3.5. Отладка и итерация.
1.4. Практические задачи.
Задача 1. Генератор паролей.
Задача 2. Календарь событий.
Задача 3. Построение пирамиды.
Задача 4. Сжатие текста.
Резюме.
Глава 2. Псевдокод и блок-схемы.
2.1. Псевдокод.
2.1.1. Гибкость псевдокода.
2.2. Блок-схемы.
2.3. Выражение реальных задач в виде псевдокода.
2.4. Практические задачи.
Задача 1. Вывод чисел.
Задача 2. Выявление палиндрома.
Задача 3. Поиск наибольшего числа.
Резюме.
Глава 3. Эффективность алгоритмов.
3.1. Временная сложность.
3.1.1. Нотация «О большое».
3.1.2. Разница между временной сложностью в лучшем, среднем и худшем случаях.
3.2. Пространственная сложность.
3.2.1. Кэширование/мемоизация.
3.3. Введение в нотацию «О большо».
3.3.1. Распространенные типы временной сложности.
3.3.2. Асимптотический анализ.
3.4. Практические задачи.
Задача 1. Линейный поиск.
Задача 2. Сумма элементов.
Задача 3. Поиск дубликатов.
Задача 4. Пузырьковая сортировка.
Резюме.
Глава 4. Основные типы алгоритмов.
4.1. Алгоритмы «разделяй и властвуй.
Рекурсивная природа.
Эффективность.
Потребление памяти.
Параллелизм.
Сортировка слиянием.
Алгоритм Штрассена.
Алгоритм Карацубы.
Ханойские башни.
Пара ближайших точек.
4.2. Жадные алгоритмы.
4.2.1. Что такое жадный алгоритм.
4.2.2. Задача размена монет.
4.3. Алгоритмы динамического программирования.
4.4. Рекурсивные алгоритмы.
4.4.1. Хвостовая рекурсия.
4.5. Практические задачи.
Задача 1. Двоичный поиск (разделяй и властвуй).
Задача 2. Размен монет (жадный алгоритм).
Задача 3. Числа Фибоначчи (динамическое программирование).
Задача 4. Сумма натуральных чисел (рекурсивный алгоритм).
Задача 5. Быстрая сортировка (разделяй и властвуй).
Задача 6. Реализация стека с помощью рекурсии
(рекурсивный алгоритм).
Резюме.
Глава 5. Алгоритмы поиска.
5.1. Линейный поиск.
5.1.1. Ограничения линейного поиска.
5.2. Двоичный поиск.
5.3. Хеширование и хеш-таблицы.
5.3.1. Коллизии.
5.4. Практические задачи.
Задача 1. Линейный поиск.
Задача 2. Двоичный поиск.
Задача 3. Хеширование.
Задача 4. Сравнение эффективности двоичного и линейного поиска.
Резюме.
Глава 6. Алгоритмы сортировки.
6.1. Пузырьковая сортировка.
6.1.1. Использование пузырьковой сортировки.
6.2. Сортировка выбором.
6.3. Сортировка вставками.
6.4. Быстрая сортировка.
6.5. Сортировка слиянием.
6.6. Пирамидальная сортировка.
6.7. Практические задачи.
Задача 1. Реализация пузырьковой сортировки.
Задача 2. Анализ худшего случая быстрой сортировки.
Задача 3. Сортировка слиянием связанного списка.
Задача 4. Формирование кучи на основе массива.
Задача 5. Стабильность сортировки.
Резюме.
Глава 7. Графовые алгоритмы.
7.1. Введение в теорию графов.
7.2. Поиск в глубину.
7.3. Поиск в ширину.
7.3.1. Временная сложность BFS.
7.4. Алгоритм Дейкстры.
7.4.1. Взвешенные и невзвешенные графы.
7.4.2. Неотрицательные веса.
7.4.3. Приложения.
7.4.4. Варианты.
7.4.5. Визуализация алгоритма Дейкстры.
7.4.6. Временная сложность.
7.5. Алгоритм поиска А*.
7.5.1. Эвристика в А*.
7.5.2. Временная и пространственная сложности.
7.5.3. Оптимальность алгоритма А*.
7.5.4. Практическое применение алгоритма А*.
7.5.5. Варианты алгоритма А*.
7.5.6. Сложность алгоритма поиска А*.
7.6. Практические задачи.
Задача 1. DFS при поиске путей через лабиринт.
Задача 2. Поиск кратчайшего пути в сетке с помощью BFS.
Резюме.
Глава 8. Структуры данных, используемые в алгоритмах.
8.1. Массивы.
8.1.1. Свойства массивов и основы их применения.
8.2. Связанные списки.
8.2.1. Другие типы связанных списков.
8.3. Стеки и очереди.
8.3.1. Стеки.
8.3.2. Очереди.
8.3.3. Приоритетные и двунаправленные очереди.
8.4. Деревья и графы.
8.4.1. Деревья.
8.4.2. Графы.
8.5. Практические задачи.
Задача 1. Массивы: подмассив с максимальной суммой.
Задача 2. Связанные списки: перестановка элементов списка в обратном порядке.
Задача 3. Стеки: проверка парности скобок.
Задача 4. Деревья: максимальная глубина двоичного дерева.
Резюме.
Глава 9. Методы проектирования алгоритмов.
9.1. Рекурсия.
9.2. Итеративные подходы.
9.2.1. Итеративное вычисление факториала.
9.2.2. Оптимизация хвостовой рекурсии.
9.3. Поиск с возвратом.
9.4. Метод ветвей и границ.
9.4.1. Принцип работы метода ветвей и границ.
9.4.2. Задача о коммивояжере.
9.4.3. Сложность и практическое использование.
9.5. Практические задачи.
Задача 1. Рекурсия: числа Фибоначчи.
Задача 2. Итерации: факториал.
Задача 3. Поиск с возвратом: задача N ферзей.
Задача 4. Ветви и границы: задача о коммивояжере.
Резюме.
Глава 10. Практическое применение алгоритмов.
10.1. Алгоритмы в базах данных.
10.1.1. Двухфазная блокировка (2PL).
10.1.2. Управление параллельным доступом с помощью многоверсионности.
10.2. Алгоритмы в искусственном интеллекте.
10.2.1. Алгоритмы машинного обучения.
10.2.2. Алгоритмы обработки естественного языка в ИИ.
10.2.3. Роль алгоритмов в машинном обучении.
10.3. Алгоритмы сетевой маршрутизации.
10.3.1. Алгоритм Дейкстры.
10.3.2. Алгоритм Беллмана - Форда.
10.3.3. Протокол маршрутизации по состоянию канала.
10.4. Практические задачи.
Задача 1. Алгоритмы в базах данных.
Задача 2. Алгоритмы искусственного интеллекта.
Задача 3. Алгоритмы сетевой маршрутизации.
Резюме.
Заключение.
Дальнейшие действия.
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Алгоритмы с нуля, 2024 - fileskachat.com, быстрое и бесплатное скачивание.
Скачать pdf
Ниже можно купить эту книгу, если она есть в продаже, и похожие книги по лучшей цене со скидкой с доставкой по всей России.Купить книги
Скачать - pdf - Яндекс.Диск.
граф
Дата публикации:
Теги: учебник по программированию :: программирование :: алгоритм :: граф :: псевдокод
Смотрите также учебники, книги и учебные материалы:
Предыдущие статьи:








