Алгоритмы для начинающих, Теория и практика для разработчика, Луридас П., 2018.
Алгоритмы правят миром! Эта книга в простой и наглядной форме дает ответы на целый ряд важнейших для начинающего программиста вопросов, начиная с «Что лежит в основе всех современных языков программирования и по каким принципам они строятся и работают?» и заканчивая «Есть ли способ овладеть всеми языками программирования сразу?».
Алгоритмы.
Прежде чем мы приступим к поиску решения нашей задачи с разницей курсов акций, хорошо бы познакомиться с основными терминами. Алгоритм — это последовательность операций, но не простая, а особая. Ее можно описать как конечную последовательность множества этапов, которая должна завершиться через определенный промежуток времени. Каждое действие, каждый этап должны быть четко прописаны так, чтобы человек мог самостоятельно разобрать его на бумаге и понять. Алгоритм выполняет действия, основанные на полученных от нас данных, и выдает результат, показывающий выполненную работу. Алгоритм 1.1 реализует описанную ранее процедуру.
Алгоритм 1.1 демонстрирует, каким образом мы будем описывать алгоритмы. Вместо языка программирования, который заставляет нас заниматься подробностями реализации, не относящимися к логике алгоритма, мы используем псевдокод. Это нечто между настоящим программным кодом и неформальным описанием. Он использует структурированный формат и применяет множество слов, которые наделяет особым значением. Так или иначе, псевдокод нельзя считать настоящим программным кодом. Он предназначен не для того, чтобы его понимали машины, а для того, чтобы его понимали люди. К слову, программы вообще должны быть понятны людям, но на деле все далеко не так просто: существует множество рабочих компьютерных программ, написанных совершенно невнятно.
Содержание.
Предисловие.
1. Разница курсов акций.
1.1. Алгоритмы.
1.2. Время выполнения работы и сложность.
1.3. Используем стек для разницы курсов акций.
Примечания.
Упражнения.
2. Исследуя лабиринты.
2.1. Графы.
2.2. Представление графов.
2.3. Обход графа в глубину.
2.4. Поиск в ширину.
Примечания.
Упражнения.
3. Сжатие.
3.1. Сжатие.
3.2. Деревья и очереди с приоритетом.
3.3. Код Хаффмана.
3.4. Сжатие Лемпеля — Зива — Велча.
Примечания.
Упражнения.
4. Секреты.
4.1. Попробуйте расшифровать.
4.2. Шифрование одноразовым ключом, или одноразовый блокнот.
4.3. AES-шифрование.
4.4. Обмен ключами по методу Диффи — Хеллмана.
4.5. Быстрое возведение в степень и возведение в степень по модулю.
Примечания.
Упражнения.
5. Делимся секретами.
5.1. Шифрование с открытым ключом.
5.2. Криптосистема RSA.
5.3. Хеширование сообщения.
5.4. Анонимизация интернет-трафика.
Примечания.
Упражнения.
6. Все по порядку.
6.1. Топологическая сортировка.
6.2. Взвешенные графы.
6.3. Критические пути.
Примечания.
Упражнения.
7. Строки, абзацы, пути.
7.1. Кратчайшие пути.
7.2. Алгоритм Дейкстры.
Примечания.
Упражнения.
8. Маршрутизация, арбитраж.
8.1. Маршрутизация Интернета.
8.2. Алгоритм Беллмана — Форда (— Мура).
8.3. Отрицательные веса и циклы.
8.4. Арбитраж.
Примечания.
9. Что важнее всего.
9.1. Суть пейдж-ранка.
9.2. Матрица гиперссылок.
9.3. Степенной метод.
9.4. Матрица «Гугла».
Примечания.
10. Прочность голосования.
10.1. Система голосования.
10.2. Метод Шульце.
10.3. Алгоритм Флойда — Уоршелла.
Примечания.
11. Методы перебора, невесты и дихотомии.
11.1. Последовательный поиск.
11.2. Соответствие, сравнение, записи, ключи.
11.3. Эффект Матфея и степенные законы.
11.4. Самоорганизующийся поиск.
11.5. Задача о разборчивой невесте.
11.6. Бинарный поиск.
11.7. Представление целых чисел на компьютере.
11.8. И снова к бинарному поиску.
11.9. Деревья сравнений.
Примечания.
12. Сортировочный компот.
12.1. Сортировка методом выбора.
12.2. Сортировка методом вставок.
12.3. Сортировка кучей.
12.4. Сортировка слиянием.
12.5. Быстрая сортировка.
12.6. Богатство выбора.
Примечания.
Упражнения.
13. Гардероб, коллизия и слот.
13.1. Соотнесение ключей и значений.
13.2. Хеширование.
13.3. Функции хеширования.
13.4. Представление чисел с плавающей запятой и хеширование.
13.5. Коллизии.
13.6. Цифровые отпечатки.
13.7. Фильтры Блума.
Примечания.
Упражнения.
14. Биты и деревья.
14.1. Предсказание как проблема коммуникации.
14.2. Информация и энтропия.
14.3. Классификация.
14.4. Деревья решений.
14.5. Выбор атрибутов.
14.6. Алгоритм ID3.
14.7. Основные принципы работы.
14.8. Бритва Оккама.
14.9. Затраты, проблемы, улучшения.
Примечания.
Упражнения.
15. Немного построчим.
15.1. Сравнение строк перебором.
15.2. Алгоритм Кнута — Морриса — Пратта.
15.3. Алгоритм Бойера — Мура — Хорспула.
Примечания.
Упражнения.
16. Предоставим дело случаю.
16.1. Случайные числа.
16.2. Случайная выборка.
16.3. Борьба за власть.
16.4. В поисках простых чисел.
Примечания.
Упражнения.
Библиография.
Предметный указатель.
Купить .
По кнопкам выше и ниже «Купить бумажную книгу» и по ссылке «Купить» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Купить и скачать электронную книгу» можно купить эту книгу в электронном виде в официальном интернет магазине «ЛитРес», и потом ее скачать на сайте Литреса.
По кнопке «Найти похожие материалы на других сайтах» можно найти похожие материалы на других сайтах.
On the buttons above and below you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Теги: учебник по программированию :: программирование :: Луридас :: алгоритмы
Смотрите также учебники, книги и учебные материалы:
- Вероятностное программирование на Python, Байесовский вывод и алгоритмы, Дэвидсон-Пайлон К., 2019
- Введение в машинное обучение с помощью Python, Мюллер А., Гвидо С., 2017
- Секреты Python, 59 рекомендаций по написанию эффективного кода, Слаткин Б., 2016
- Python. Книга рецептов, Бизли Д., Джонс Б.К., 2019
- Swift, Основы разработки приложений под iOS и macOS, Усов В., 2018
- Spring, Все паттерны проектирования, Раджпут Д., 2019
- React быстро, Веб-приложения на React, JSX, Redux и GraphQL, Мардан А., 2019
- Python, Экспресс-курс, Седер Н., 2019