40 algorithms every programmer should know : hone your problem solving skills by learning different algorithms and their implementation in Python Algorithms have always played an important role both in the science and practice of computing. Beyond traditional computing ability to utilize these algorithms to solve real world problems is an important skill and is the focus of this book. In order to optimally use these algorithms a deeper understanding of their logic and mathematics is ... Cover Title Page Copyright and Credits Dedication About Packt Contributors Table of Contents Preface Section 1: Fundamentals and Core Algorithms Chapter 1: Overview of Algorithms What is an algorithm The phases of an algorithm Specifying the logic of an algorithm Understanding pseudocode A practical example of pseudocode Using snippets Creating an execution plan Introducing Python packages Python packages The SciPy ecosystem Implementing Python via the Jupyter Notebook Algorithm design techniques The data dimension Compute dimension A practical example Performance analysis Space complexity analysis Time complexity analysis Estimating the performance The best case The worst case The average case Selecting an algorithm Big O notation Constant time (O(1)) complexity Linear time (O(n)) complexity Quadratic time (O(n2)) complexity Logarithmic time (O(logn)) complexity Validating an algorithm Exact approximate and randomized algorithms Explainability Summary Chapter 2: Data Structures Used in Algorithms Exploring data structures in Python List Using lists Lambda functions The range function The time complexity of lists Tuples The time complexity of tuples Dictionary The time complexity of a dictionary Sets Time complexity analysis for sets DataFrames Terminologies of DataFrames Creating a subset of a DataFrame Column selection Row selection Matrix Matrix operations Exploring abstract data types Vector Stacks The time complexity of stacks Practical example Queues The basic idea behind the use of stacks and queues Tree Terminology Types of trees Practical examples Summary Chapter 3: Sorting and Searching Algorithms.