Description |
1 online resource (x, 365 pages) : illustrations |
Note |
Table of ContentsOverview of AlgorithmsData Structures used in AlgorithmsSorting and Searching AlgorithmsDesigning AlgorithmsGraph AlgorithmsUnsupervised Machine Learning AlgorithmsTraditional Supervised Learning AlgorithmsNeural Network AlgorithmsAlgorithms for Natural Language ProcessingRecommendation EnginesData AlgorithmsCryptographyLarge Scale AlgorithmsPractical Considerations. |
Contents |
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 -- Introducing Sorting Algorithms -- Swapping Variables in Python -- Bubble Sort -- Understanding the Logic Behind Bubble Sort -- A Performance Analysis of Bubble Sort -- Insertion Sort -- Merge Sort -- Shell Sort -- A Performance Analysis of Shell Sort -- Selection Sort -- The performance of the selection sort algorithm -- Choosing a sorting algorithm -- Introduction to Searching Algorithms -- Linear Search -- The Performance of Linear Search -- Binary Search -- The Performance of Binary Search -- Interpolation Search |
|
The Performance of Interpolation Search -- Practical Applications -- Summary -- Chapter 4: Designing Algorithms -- Introducing the basic concepts of designing an algorithm -- Concern 1 -- Will the designed algorithm produce the result we expect? -- Concern 2 -- Is this the optimal way to get these results? -- Characterizing the complexity of the problem -- Concern 3 -- How is the algorithm going to perform on larger datasets? -- Understanding algorithmic strategies -- Understanding the divide-and-conquer strategy -- Practical example -- divide-and-conquer applied to Apache Spark |
Summary |
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 ... |
Subject |
Computer algorithms.
|
|
Python (Computer program language)
|
|
Algorithms.
|
|
Algorithmes. |
|
Python (Langage de programmation) |
|
algorithms. |
|
Algorithms |
|
Computer algorithms |
|
Python (Computer program language) |
Added Title |
Forty algorithms every programmer should know |
Other Form: |
Print version: Ahmad, Imran. 40 algorithms every programmer should know. Birmingham : Packt Publishing Limited, [2020] 1789801214 (OCoLC)1144106570 |
ISBN |
9781789809862 electronic book |
|
178980986X electronic book |
|