Алгоритмы. С примерами на Python
معرفی کتاب «Алгоритмы. С примерами на Python» نوشتهٔ Джордж Хайнеман، منتشرشده توسط نشر Питер در سال 2023. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Алгоритмы. С примерами на Python» در دستهٔ بدون دستهبندی قرار دارد.
Когда нужно, чтобы программа работала быстро и занимала поменьше памяти, профессионального программиста выручают знание алгоритмов и пракrика их применения. Эта книга - как раз про пракrику. Ее автор Джордж Хайнсман предлагает краткое, но четкое и последовательное описание основных алгоритмов, которые можно эффекrивно использовать в большинстве языков программирования. О том, какими методами решаются различные вычислительные задачи, стоит знать и разработчикам, и тестировщикам, и интеграторам. Код https://github.com/heineman/LearningAlgorithms Краткое содержание Оглавление Предисловие Введение Для кого эта книга Исходные тексты Условные обозначения Благодарности От издательства Глава 1. Решение задач Что такое алгоритм Поиск наибольшего значения в произвольной последовательности Подсчет действий Как оценить эффективность алгоритма по схеме Поиск двух наибольших значений в произвольном списке Турнирное дерево Сложность по времени и сложность по памяти Заключение Тренировочные задания Глава 2. Анализ алгоритмов Как оценить сложность с помощью эмпирической модели Умножать быстрее, чем в столбик Классы вычислительной сложности Асимптотический анализ Подсчет всех действий Подсчет всех байтов Одна дверь захлопнулась - другая откроется Двоичный поиск в упорядоченном массиве Немногим сложнее, чем п Двух зайцев одним выстрелом Как все это работает Приближенная кривая или четкие границы? Заключение Тренировочные задания Глава 3. Хороший хеш - залог успеха Соответствие значений ключам Хеш-функции и хеш-суммы Хеш-таблица: хранение данных по ключу Определение коллизий и их разрешение последовательным просмотром Связный список или динамический массив? Раздельное хранение цепочек в списках Оценка Расширяемые хеш-таблицы Оценка производительности динамических хеш-таблиц Динамические массивы Идеальный хеш Проход таблицы циклом Заключение Тренировочные задания Глава 4. Могучая куча Двоичная куча Добавление пары в кучу Снятие элемента с кучи Хранение двоичной кучи в массиве Как погружаться и всплывать Заключение Тренировочные задания Глава 5. Сортировка без магии Обмен элементов в сортировке Сортировка выбором Структура квадратичных алгоритмов сортировки Оценка производительности сортировки выбором и сортировки вставками Рекурсия: разделяй и властвуй! Сортировка слиянием Быстрая сортировка Пирамидальная сортировка Сравнение быстродействия алгоритмов со сложностью O(N log N) Сортировка Тима Заключение Тренировочные задания Глава 6. Двоичные деревья: бесконечность под рукой Введение Двоичные деревья поиска Поиск значения в двоичном дереве Удаление значения из двоичного дерева Обход двоичного дерева Исследование быстродействия двоичных деревьев поиска Сбалансированные двоичные деревья Производительность сбалансированных деревьев Хранение пар (ключ, значение) в двоичном дереве Двоичное дерево как приоритетная очередь Заключение Тренировочные задания Глава 7. Графы: всегда на связи! В графе удобно хранить полезную информацию Обход лабиринта в глубину Другой способ обхода: в ширину Ориентированные графы Взвешенные графы Алгоритм Дейкстры Полный поиск кратчайших путей Алгоритм Флойда - Уоршелла Заключение Тренировочные задания Глава 8. Подведем итоги Встроенные типы данных Python Реализация стека в Python Реализация очередей в Python Реализация кучи и приоритетной очереди Что изучать дальше? Об авторе Иллюстрация на обложке When It Comes To Writing Efficient Code, Every Software Professional Needs To Have An Effective Working Knowledge Of Algorithms. In This Practical Book, Author George Heineman (algorithms In A Nutshell) Provides Concise And Informative Descriptions Of Key Algorithms That Improve Coding In Multiple Languages. Software Developers, Testers, And Maintainers Will Discover How Algorithms Solve Computational Problems Creatively. Each Chapter Builds On Earlier Chapters Through Eye-catching Visuals And A Steady Rollout Of Key Concepts, Including An Algorithm Analysis To Classify The Performance Of Every Algorithm Presented In The Book. At The End Of Each Chapter, You'll Get To Apply What You've Learned To A Novel Challenge Problem--simulating The Experience You Might Find In A Technical Code Interview. Examine Fundamental Algorithms Central To Computer Science And Software Engineering Learn Common Strategies For Efficient Problem Solving--such As Divide And Conquer, Dynamic Programming, And Greedy Approaches Analyze Code To Evaluate Time Complexity Using Big O Notation Use Existing Java And Python Libraries To Solve Problems Using Algorithms Understand The Key Steps In Algorithms Presented In The Book Use Example Code In Your Programs And Documentation When it comes to writing efficient code, every software professional needs to have an effective working knowledge of algorithms. In this practical book, author George Heineman (Algorithms in a Nutshell) provides concise and informative descriptions of key algorithms that improve coding in multiple languages. Software developers, testers, and maintainers will discover how algorithms solve computational problems creatively. Each chapter builds on earlier chapters through eye-catching visuals and a steady rollout of essential concepts, including an algorithm analysis to classify the performance of every algorithm presented in the book. At the end of each chapter, you'll get to apply what you've learned to a novel challenge problem, simulating the experience you might find in a technical code interview. With this book, you will: Examine fundamental algorithms central to computer science and software engineeringLearn common strategies for efficient problem solving, such as divide and conquer, dynamic programming, and greedy approaches; Analyze code to evaluate time complexity using big O notation; Use existing Python libraries and data structures to solve problems using algorithms; Understand the main steps of important algorithms
دانلود کتاب Алгоритмы. С примерами на Python