Реализация полезных алгоритмов на C++

Реализация полезных алгоритмов на C++

Реализация полезных алгоритмов на C++
Автор: Кедик Дмитро
Переводчик: Михаил Райтман
Дата выхода: 2024
Издательство: БХВ-Петербург
Количество страниц: 1022
Размер файла: 14.1 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы  Дополнительные материалы 

Оглавление....5

 Предисловие....18

 1. С чего всё начинается…....20

 1.1. Введение....20

 1.2. Каким должен быть алгоритм?....20

 1.3. Логика принятия решений....22

 1.4. Доказательство базовой правильности....24

 1.5. Асимптотическая запись....26

 1.6. Машинные модели....26

 1.7. Рандомизированные алгоритмы....28

 1.8. Измерение эффективности....28

 1.9. Типы данных....29

 1.10. Эксперименты с алгоритмами....31

 1.11. Управление памятью....32

 1.12. Оптимизация кода....33

 1.13. Рекурсия....35

 1.14. Стратегии вычислений....36

 1.15. Выбор среди нескольких алгоритмов....36

 1.16. Создание параллельных алгоритмов....37

 1.17. Реализация алгоритмов....38

 1.18. Рекомендуемые курсы для студентов, изучающих информатику....39

 1.19. Некоторые стратегии обучения....41

 1.20. О проектах всей книги....42

 1.21. Список рекомендуемой литературы....43

 2. Основы разработки программного обеспечения....44

 2.1. Введение....44

 2.2. Обзор цикла разработки....44

 2.3. Требования....45

 2.4. Проектирование структуры компонентов....46

 2.5. Проектирование отдельных компонентов и написание кода....46

 2.6. Шаблоны....47

 2.7. Управление ошибками....51

 2.8. Тестирование....53

 2.9. Просмотр кода....55

 2.10. Релиз....55

 2.11. Обслуживание....56

 2.12. Оценка....57

 2.13. Следование формальному процессу....57

 2.14. Управление данными пользователя....58

 2.15. Список рекомендуемой литературы....58

 3. Советы по вопросам карьерного роста и прохождения собеседований....59

 3.1. Введение....59

 3.2. Отклик на вакансию....59

 3.3. Составление резюме....59

 3.4. Поведенческие вопросы и собеседования....60

 3.5. Технические собеседования....62

 3.6. Более сложные вопросы....66

 3.7. Собеседование по проектированию систем....67

 3.8. Обсуждение предложения....67

 3.9. Как красиво уйти с текущей работы?....68

 3.10. Боритесь с самуспокоенностью....68

 3.11. Советы по дополнительной подготовке....69

 3.12. Список рекомендуемой литературы....69

 4. Основы компьютерного права....70

 4.1. Введение....70

 4.2. Интеллектуальная собственность....70

 4.3. Патенты....71

 4.4. Коммерческие тайны....72

 4.5. Авторские права....73

 4.6. Товарные знаки....74

 4.7. Управление интеллектуальной собственностью....75

 4.8. Контракты....75

 4.9. Лицензии....76

 4.10. Трудовые соглашения....77

 4.11. Конфиденциальность....78

 4.12. Киберпреступления....79

 4.13. Выступления в качестве свидетеля-эксперта....79

 4.14. Советы по дополнительной подготовке....80

 4.15. Список рекомендуемой литературы....80

 5. Фундаментальные структуры данных....81

 5.1. Введение....81

 5.2. Вспомогательные функции....81

 5.3. Вектор....87

 5.4. Блочный массив....91

 5.5. Связанный список....92

 5.6. Свободный список со сборкой мусора....96

 5.7. Стек....100

 5.8. Очередь....101

 5.9. Деревья....104

 5.10. Битовые алгоритмы....105

 5.11. Набор битов....108

 5.12. Поиск объединения....114

 5.13. Примечания по реализации....115

 5.14. Комментарии....115

 5.15. Советы по дополнительной подготовке....116

 5.16. Список рекомендуемой литературы....116

 6. Генерация случайных чисел....117

 6.1. Введение....117

 6.2. Краткий обзор теории вероятностей....117

 6.3. Генерация псевдослучайных чисел....119

 6.4. Класс генераторов псевдослучайных чисел Xorshift....121

 6.5. Вихрь Мерсенна....122

 6.6. Генератор MRG32k3a....122

 6.7. Алгоритм RC4....124

 6.8. Выбор генератора....125

 6.9. Использование генератора....126

 6.10. Создание выборок из распределений....126

 6.11. Генерация выборок из дискретных распределений с ограниченным диапазоном....128

 6.12. Генерация выборок из особых распределений....132

 6.13. Генерация случайных объектов....136

 6.14. Генерация выборок из многомерных распределений....138

 6.15. Метод Монте-Карло....139

 6.16. Примечания по реализации....145

 6.17. Комментарии....146

 6.18. Советы по дополнительной подготовке....146

 6.19. Список рекомендуемой литературы....147

 7. Сортировка....148

 7.1. Введение....148

 7.2. Сортировка вставками....148

 7.3. Быстрая сортировка....149

 7.4. Сортировка слиянием....152

 7.5. Целочисленная сортировка....153

 7.6. Векторная сортировка....154

 7.7. Сортировка перестановкой....157

 7.8. Выбор....158

 7.9. Множественный выбор....159

 7.10. Поиск....160

 7.11. Примечания по реализации....160

 7.12. Комментарии....161

 7.13. Советы по дополнительной подготовке....162

 7.14. Список рекомендуемой литературы....162

 8. Динамически сортируемые последовательности....163

 8.1. Введение....163

 8.2. Требования....163

 8.3. Список с пропусками....164

 8.4. Декартово дерево....169

 8.5. Итераторы деревьев....175

 8.6. Дополнения и варианты API....177

 8.7. Векторные ключи....178

 8.8. Расширение LCP для деревьев....178

 8.9. Префиксное дерево....184

 8.10. Тернарное декартово дерево....185

 8.11. Сравнение производительности....190

 8.12. Примечания по реализации....191

 8.13. Комментарии....191

 8.14. Советы по дополнительной подготовке....193

 8.15. Список рекомендуемой литературы....193

 9. Хеширование....195

 9.1. Введение....195

 9.2. Хеш-функции....195

 9.3. Универсальные хеш-функции....199

 9.4. Неуниверсальные хеш-функции....202

 9.5. Скользящие хеш-функции....204

 9.6. Коллекция хеш-функций....205

 9.7. Хеш-таблицы....205

 9.8. Цепочка хеш-таблиц....205

 9.9. Хеш-таблица с линейным зондированием....210

 9.10. Оценка времени....214

 9.11. Фильтр Блума....215

 9.12. Примечания по реализации....216

 9.13. Комментарии....217

 9.14. Советы по дополнительной подготовке....218

 9.15. Список рекомендуемой литературы....218

 10. Приоритетные очереди....220

 10.1. Введение....220

 10.2. API....220

 10.3. Бинарная куча....220

 10.4. Индексированные кучи....223

 10.5. Примечания по реализации....228

 10.6. Комментарии....228

 10.7. Список рекомендуемой литературы....229

 11. Алгоритмы графов....230

 11.1. Введение....230

 11.2. Основы....230

 11.3. Представление графов....231

 11.4. Поиск....234

 11.5. Примеры задач поиска....236

 11.6. Минимальное остовное дерево....238

 11.7. Кратчайшие пути....239

 11.8. Алгоритмы потока....242

 11.9. Двудольное сопоставление....246

 11.10. Устойчивое сопоставление....247

 11.11. Задача назначения....248

 11.12. Генерация случайных графов....249

 11.13. Примечания по реализации....250

 11.14. Комментарии....250

 11.15. Советы по дополнительной подготовке....251

 11.16. Список рекомендуемой литературы....251

 12. Разные алгоритмы и методы....252

 12.1. Введение....252

 12.2. Превращение статических структур данных в динамические....252

 12.3. Обеспечение устойчивости структур данных....253

 12.4. Хранение кеша....254

 12.5. Вектор с k-битным размером слова....257

 12.6. Объединение множества на интервалах....258

 12.7. Создание первых N простых чисел....258

 12.8. Генерация всех возможных перестановок....259

 12.9. Генерация всех возможных сочетаний....260

 12.10. Генерация всех подмножеств....261

 12.11. Создание всех разделов....261

 12.12. Генерация всех зависимых объектов....262

 12.13. Примечания по реализации....262

 12.14. Комментарии....262

 12.15. Советы по дополнительной подготовке....263

 12.16. Список рекомендуемой литературы....263

 13. Алгоритмы для работы с внешней памятью....264

 13.1. Введение....264

 13.2. Диски и файлы....264

 13.3. Структура файла....267

 13.4. Работа с файлами CSV....268

 13.5. Модель ввода/вывода....272

 13.6. Вектор внешней памяти....276

 13.7. Сортировка....279

 13.8. Векторные структуры данных....281

 13.9. Дерево B+....282

 13.10. Комментарии....290

 13.11. Советы по дополнительной подготовке....290

 13.12. Список рекомендуемой литературы....291

 14. Строковые алгоритмы....292

 14.1. Введение....292

 14.2. Поиск по одному шаблону....292

 14.3. Поиск по нескольким шаблонам....295

 14.4. Регулярные выражения....296

 14.5. Расширенные шаблоны....298

 14.6. Алгоритмы поиска расстояния между строками....300

 14.7. Обратный индекс....304

 14.8. Суффиксный индекс....305

 14.9. Синтаксическое дерево....309

 14.10. Введение в краткие структуры данных....309

 14.11. Примечания по реализации....313

 14.12. Комментарии....314

 14.13. Советы по дополнительной подготовке....314

 14.14. Список рекомендуемой литературы....315

 15. Сжатие....316

 15.1. Введение....316

 15.2. Основные ограничения....316

 15.3. Энтропия....316

 15.4. Битовый поток....317

 15.5. Коды....319

 15.6. Статические коды....319

 15.7. Коды Хаффмана....323

 15.8. Сжатие словаря....327

 15.9. Кодирование серий байтов....330

 15.10. Перемещение на передний план....331

 15.11. Преобразование Берроуза — Уилера....332

 15.12. Примечания по реализации....335

 15.13. Комментарии....335

 15.14. Советы по дополнительной подготовке....336

 15.15. Список рекомендуемой литературы....336

 16. Комбинаторная оптимизация....337

 16.1. Введение....337

 16.2. Теория сложности....337

 16.3. Типичные сложные задачи....339

 16.4. Алгоритмы приближения....343

 16.5. Эвристика жадного построения....344

 16.6. Ветвление и границы....345

 16.7. Поиск крачайшего пути в пространстве с нижними границами....351

 16.8. Локальный поиск....359

 16.9. Применение локального поиска к некоторым задачам....365

 16.10. Алгоритм имитации отжига....369

 16.11. Повторный локальный поиск....374

 16.12. Генетические алгоритмы....376

 16.13. Анализ производительности....382

 16.14. Подготовка данных для конкретной задачи....383

 16.15. Многоцелевая оптимизация....383

 16.16. Обработка ограничений....384

 16.17. Стохастические задачи....389

 16.18. Общие рекомендации....389

 16.19. Примечания по реализации....390

 16.20. Комментарии....390

 16.21. Советы по дополнительной подготовке....393

 16.22. Список рекомендуемой литературы....394

 17. Большие числа....396

 17.1. Введение....396

 17.2. Представление....396

 17.3. Сложение и вычитание....398

 17.4. Операции сдвига....399

 17.5. Умножение....400

 17.6. Деление....401

 17.7. Преобразование в десятичное число....403

 17.8. Возведение в степень....403

 17.9. Вычисление логарифма....404

 17.10. Целочисленный квадратный корень....404

 17.11. Наибольший общий делитель....405

 17.12. Модульная инверсия....405

 17.13. Проверка числа на простоту....406

 17.14. Рациональные числа....407

 17.15. Примечания по реализации....409

 17.16. Комментарии....409

 17.17. Советы по дополнительной подготовке....410

 17.18. Список рекомендуемой литературы....410

 18. Вычислительная геометрия....411

 18.1. Введение....411

 18.2. Расстояния....411

 18.3. VP-дерево....412

 18.4. k-d-дерево....416

 18.5. Решение задач при большом числе измерений....421

 18.6. Структуры данных для геометрических объектов....422

 18.7. Точки....422

 18.8. Геометрические примитивы....423

 18.9. Выпуклая оболочка....424

 18.10. Развертка плоскости....425

 18.11. Комментарии....426

 18.12. Советы по дополнительной подготовке....427

 18.13. Список рекомендуемой литературы....427

 19. Обнаружение и исправление ошибок....428

 19.1. Введение....428

 19.2. Бинарные полиномы....428

 19.3. Многочлены над конечными полями....428

 19.4. Обнаружение ошибок....429

 19.5. Каналы и коды....431

 19.6. Вычисление конечного поля....433

 19.7. Полиномы над элементами поля Галуа....434

 19.8. Коды Рида — Соломона....437

 19.9. Границы кодов минимального расстояния с фиксированным алфавитом....441

 19.10. Булевы матрицы....442

 19.11. Коды проверки на четность с низкой плотностью....443

 19.12. Примечания по реализации....448

 19.13. Комментарии....449

 19.14. Советы по дополнительной подготовке....450

 19.15. Список рекомендуемой литературы....450

 20. Криптография....451

 20.1. Введение....451

 20.2. Шифрование файлов....451

 20.3. Длина ключа....453

 20.4. Хранилище ключей....454

 20.5. Криптографическое хеширование....455

 20.6. Обмен ключами....455

 20.7. Другие протоколы....455

 20.8. Примечания по реализации....456

 20.9. Комментарии....456

 20.10. Совет по дополнительной подготовке....457

 20.11. Список рекомендуемой литературы....457

 21. Вычислительная статистика....458

 21.1. Введение....458

 21.2. Оценки....458

 21.3. Оценщики....461

 21.4. Поиск наиболее эффективных оценщиков....468

 21.5. Некоторые особенности асимптотики....472

 21.6. Оценка нормальной CDF....472

 21.7. Оценка CDF T-распределения....473

 21.8. Подробнее о доверительных интервалах....474

 21.9. Границы среднего значения в конечной выборке....478

 21.10. Доверительные интервалы для общих метрик местоположения....480

 21.11. Выпадающие значения и надежные выводы....483

 21.12. Функции оценок....485

 21.13. Измерение времени выполнения алгоритма....486

 21.14. Корреляционный анализ....487

 21.15. Начальная загрузка....489

 21.16. Когда использовать начальную загрузку?....503

 21.17. Проверка гипотез....504

 21.18. Сравнение тестов....506

 21.19. Эффективное использование тестов....508

 21.20. Валидация исследований....513

 21.21. Сравнение совпадающих пар....514

 21.22. Множественные сравнения....516

 21.23. Сравнение совпадающих кортежей....518

 21.24. Сравнение независимых выборок....519

 21.25. Перестановочные тесты....521

 21.26. Сравнение нескольких альтернатив в нескольких предметных областях....525

 21.27. Работа с данными расчета....528

 21.28. Тестирование различий в распределении....530

 21.29. Сравнение данных с распределением....531

 21.30. Сравнение распределений двух выборок....533

 21.31. Анализ чувствительности....534

 21.32. Последовательность Соболя....536

 21.33. Планирование экспериментов: основные идеи....540

 21.34. Марковская цепь Монте-Карло....543

 21.35. Байесовские методы....546

 21.36. Поиск лучшей альтернативы с помощью моделирования....548

 21.37. Расчет размера выборки....551

 21.38. Анализ временных рядов....552

 21.39. Использование статистики на практике....564

 21.40. Анализ решений....566

 21.41. Примечания по реализации....568

 21.42. Комментарии....569

 21.43. Советы по дополнительной подготовке....575

 21.44. Список рекомендуемой литературы....577

 22. Численные алгоритмы: введение и матричная алгебра....581

 22.1. Введение....581

 22.2. Арифметика с плавающей точкой....582

 22.3. Ошибки при использовании арифметики с плавающей точкой....583

 22.4. Ошибка приближения....587

 22.5. Показатели устойчивости и состояния....588

 22.6. Ошибка оптимизации....590

 22.7. Другие общие темы....592

 22.8. Разработка надежного численного программного обеспечения....594

 22.9. Матричная алгебра....598

 22.10. Матричные нормы....601

 22.11. LUP-разложение....602

 22.12. Разложение Холецкого....607

 22.13. Ленточные матрицы....608

 22.14. Решение тридиагональных матричных уравнений....610

 22.15. Ортогональные преобразования....610

 22.16. QR-разложение....612

 22.17. Собственные значения и собственные векторы симметричной матрицы....614

 22.18. Разложение по сингулярным значениям (SVD)....617

 22.19. Собственные значения и собственные векторы асимметричной матрицы....621

 22.20. Разреженные матрицы....626

 22.21. Итерационные методы для разреженных матриц....632

 22.22. Итерационные методы для собственных значений....633

 22.23. Введение в интервальную арифметику....635

 22.24. Примечания по реализации....638

 22.25. Комментарии....638

 22.26. Советы по дополнительной подготовке....641

 22.27. Список рекомендуемой литературы....641

 23. Численные алгоритмы: работа с функциями....644

 23.1. Введение....644

 23.2. Быстрое преобразование Фурье....644

 23.3. Интерполяция: общие идеи....648

 23.4. Полиномиальная интерполяция из существующих данных....651

 23.5. Полиномы Чебышева....654

 23.6. Кусочная интерполяция....661

 23.7. Сплайны — для работы с существующими данными....667

 23.8. Сравнение методов интерполяции....671

 23.9. Интегрирование....673

 23.10. Многомерное интегрирование....680

 23.11. Оценка функции....684

 23.12. Оценка производных....684

 23.13. Решение нелинейных уравнений и систем....690

 23.14. Поиск всех корней в одномерном случае....706

 23.15. Обыкновенные дифференциальные уравнения....707

 23.16. Решение жестких ОДУ....712

 23.17. Краевые задачи для ОДУ....716

 23.18. Уравнения с частными производными: некоторые размышления....718

 23.19. Некоторые выводы....719

 23.20. Примечания по реализации....720

 23.21. Комментарии....720

 23.22. Советы по дополнительной подготовке....726

 23.23. Список рекомендуемой литературы....727

 24. Численная оптимизация....730

 24.1. Введение....730

 24.2. Некоторые общие идеи....730

 24.3. Минимизация унимодальной функции с одной переменной....731

 24.4. Минимизация многомерных функций: введение и координатный спуск....734

 24.5. Линейный поиск....737

 24.6. Алгоритмы линейного поиска....741

 24.7. Методы, не требующие вычисления производных....747

 24.8. Негладкая минимизация....752

 24.9. Глобальная минимизация....755

 24.10. Оптимизация в дискретном множестве....769

 24.11. Стохастическая оптимизация....771

 24.12. Алгоритмы стохастической аппроксимации....772

 24.13. Линейное программирование....775

 24.14. Некоторые соображения о нелинейном программировании....778

 24.15. Примечания по реализации....779

 24.16. Комментарии....780

 24.17. Советы по дополнительной подготовке....785

 24.18. Список рекомендуемой литературы....786

 25. Введение в машинное обучение....789

 25.1. Введение....789

 25.2. Что такое машинное обучение?....789

 25.3. Математическое обучение....790

 25.4. Прогнозирование и структурный вывод....795

 25.5. Оценка риска предиктора....795

 25.6. Источники риска....798

 25.7. Контроль сложности....799

 25.8. Ошибка аппроксимации....801

 25.9. Устойчивость....804

 25.10. Оценка риска стратегии обучения....805

 25.11. Принятие решений и выбор модели....809

 25.12. Общие стратегии выбора модели....811

 25.13. Смещение, дисперсия и бэггинг....812

 25.14. Паттерны проектирования....815

 25.15. Подготовка данных....816

 25.16. Масштабирование....818

 25.17. Обработка пропущенных значений....820

 25.18. Выбор признаков....820

 25.19. Ядра....826

 25.20. Обучение в реальном времени....828

 25.21. Работа с невекторными данными....829

 25.22. Масштабное обучение....829

 25.23. Выводы....831

 25.24. Примечания по реализации....832

 25.25. Комментарии....832

 25.26. Советы по дополнительной подготовке....838

 25.27. Список рекомендуемой литературы....839

 26. Машинное обучение: классификация....841

 26.1. Введение....841

 26.2. Стратификация по метке класса....841

 26.3. Оценка риска....843

 26.4. Сведение мультикласса к двум классам....847

 26.5. Контроль сложности....850

 26.6. Наивный классификатор Байеса....852

 26.7. Ближайший сосед....855

 26.8. Дерево решений....858

 26.9. Механизм опорных векторов....865

 26.10. Линейный SVM....867

 26.11. Ядро SVM....872

 26.12. Мультиклассовый нелинейный SVM....877

 26.13. Нейронная сеть....879

 26.14. Ансамбли рандомизации....888

 26.15. Обучение в реальном времени....89

 26.16. Бустинг....893

 26.17. Масштабное обучение....897

 26.18. Экономичное обучение....897

 26.19. Несбалансированное обучение....902

 26.20. Выбор признаков....905

 26.21. Сравнение классификаторов....905

 26.22. Примечания по реализации....908

 26.23. Комментарии....909

 26.24. Советы по дополнительной подготовке....918

 26.25. Список рекомендуемой литературы....918

 27. Машинное обучение: регрессия....921

 27.1. Введение....921

 27.2. Оценка риска....921

 27.3. Управление сложностью....923

 27.4. Линейная регрессия....924

 27.5. Регрессия лассо....925

 27.6. Регрессия ближайших соседей....929

 27.7. Дерево регрессии....930

 27.8. Регрессия случайного леса....933

 27.9. Нейронная сеть....934

 27.10. Выбор признаков....935

 27.11. Сравнение производительности....935

 27.12. Примечания по реализации....936

 27.13. Комментарии....937

 27.14. Советы по дополнительной подготовке....940

 27.15. Список рекомендуемой литературы....941

 28. Машинное обучение: кластеризация....942

 28.1. Введение....942

 28.2. Постановка....942

 28.3. Внешняя оценка....944

 28.4. Внутренняя оценка и выбор количества кластеров....947

 28.5. Расчет устойчивости....950

 28.6. Кластеризация в евклидовом пространстве....952

 28.7. Кластеризация в метрическом пространстве....956

 28.8. Спектральная кластеризация....959

 28.9. Эксперименты....963

 28.10. Примечания по реализации....963

 28.11. Комментарии....964

 28.12. Советы по дополнительной подготовке....968

 28.13. Список рекомендуемой литературы....968

 29. Машинное обучение: прочие задачи....970

 29.1. Введение....970

 29.2. Обучение с подкреплением....970

 29.3. Функция, присваивающая значения....971

 29.4. Поиск часто встречающихся комбинаций предметов....973

 29.5. Полуконтролируемое обучение....974

 29.6. Оценка плотности....975

 29.7. Обнаружение выпадающих значений....975

 29.8. Примечания по реализации....976

 29.9. Комментарии....976

 29.10. Список рекомендуемой литературы....977

 30. Отстойник: не слишком полезные алгоритмы и структуры данных....978

 30.1. Введение....978

 30.2. Сортировка связанного списка....978

 30.3. Частичная сортировка....980

 30.4. Сжатое префиксное дерево....980

 30.5. Хеширование кукушкой....986

 30.6. Немного приоритетных очередей....989

 30.7. Младший общий предок (LCA) и запрос с минимальным диапазоном (RQM)....995

 30.8. Знаковый ранговый критерий Уилкоксона для двух выборок....996

 30.9. Критерий Фридмана для согласованных выборок....997

 30.10. MADS-подобный алгоритм оптимизации....998

 30.11. Алгоритм классификации бустинга SAMME....999

 30.12. Бустинг в задаче регрессии....1000

 30.13. Вероятностная кластеризация....1002

 30.14. Иерархическая кластеризация....1006

 30.15. Кластеризация на основе плотности....1009

 30.16. Не представленные реализации....1011

 30.17. Советы по дополнительной подготовке....1012

 30.18. Список рекомендуемой литературы....1013

 31. Приложение: примечания о языке С++....1014

 31.1. Введение....1014

 31.2. Путеводитель по литературе, посвященной C++....1014

 31.3. Советы по дополнительной подготовке....1014

 31.4. Список рекомендуемой литературы....1015

 Предметный указатель....1016

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

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

  • статистические методы,
  • числовые методы,
  • программная инженерия,
  • сортировка,
  • хэширование,
  • графовые алгоритмы,
  • оптимизация,
  • криптография,
  • строковые алгоритмы,
  • спектральная кластеризация,
  • глубокое обучение,
  • перемножение матриц
  • случайные леса
  • и другим.

Важнейшая часть книги посвящена машинному обучению и отличается значительным теоретическим и академическим уклоном.

Каждая глава будет для вас небольшим открытием. Например, разобраны малоизученные практические аспекты выпуклой оптимизации, метода Монте-Карло и кластеризации при проектировании и усилении нейронных сетей. Затронуты вопросы  командной разработки алгоритмов.

В зависимости от уровня вашей подготовки книга может послужить учебником или справочником, но на долгие годы останется для вас настольной.


Похожее:

Список отзывов:

Нет отзывов к книге.