توضیحاتی در مورد کتاب Essential algorithms : a practical approach to computer algorithms using Python and C#
نام کتاب : Essential algorithms : a practical approach to computer algorithms using Python and C#
ویرایش : Second
عنوان ترجمه شده به فارسی : الگوریتم های ضروری: رویکردی عملی به الگوریتم های کامپیوتری با استفاده از پایتون و سی شارپ
سری :
نویسندگان : Rod Stephens
ناشر :
سال نشر : 2019
تعداد صفحات : 803
ISBN (شابک) : 9781119575993 , 1119575990
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 6 مگابایت
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
فهرست مطالب :
Cover
Title Page
Copyright
About the Author
About the Technical Editor
Credits
Acknowledgments
Contents at a glance
Contents
Introduction
Why You Should Study Algorithms
Algorithm Selection
Who This Book Is For
Getting the Most Out of This Book
This Book’s Websites
How This Book Is Structured
What You Need to Use This Book
Conventions
How to Contact the Author
Chapter 1 Algorithm Basics
Approach
Algorithms and Data Structures
Pseudocode
Algorithm Features
Big O Notation
Rule 1
Rule 2
Rule 3
Rule 4
Rule 5
Common Run Time Functions
1
Log N
Sqrt N
N
N log N
N2
2N
N!
Visualizing Functions
Practical Considerations
Summary
Exercises
Chapter 2 Numerical Algorithms
Randomizing Data
Generating Random Values
Generating Values
Ensuring Fairness
Getting Fairness from Biased Sources
Randomizing Arrays
Generating Nonuniform Distributions
Making Random Walks
Making Self-Avoiding Walks
Making Complete Self-Avoiding Walks
Finding Greatest Common Divisors
Calculating Greatest Common Divisors
Extending Greatest Common Divisors
Performing Exponentiation
Working with Prime Numbers
Finding Prime Factors
Finding Primes
Testing for Primality
Performing Numerical Integration
The Rectangle Rule
The Trapezoid Rule
Adaptive Quadrature
Monte Carlo Integration
Finding Zeros
Gaussian Elimination
Forward Elimination
Back Substitution
The Algorithm
Least Squares Fits
Linear Least Squares
Polynomial Least Squares
Summary
Exercises
Chapter 3 Linked Lists
Basic Concepts
Singly Linked Lists
Iterating Over the List
Finding Cells
Using Sentinels
Adding Cells at the Beginning
Adding Cells at the End
Inserting Cells After Other Cells
Deleting Cells
Doubly Linked Lists
Sorted Linked Lists
Self-Organizing Linked Lists
Move To Front (MTF)
Swap
Count
Hybrid Methods
Pseudocode
Linked-List Algorithms
Copying Lists
Sorting with Insertionsort
Sorting with Selectionsort
Multithreaded Linked Lists
Linked Lists with Loops
Marking Cells
Using Hash Tables
List Retracing
List Reversal
Tortoise and Hare
Loops in Doubly Linked Lists
Summary
Exercises
Chapter 4 Arrays
Basic Concepts
One-Dimensional Arrays
Finding Items
Finding Minimum, Maximum, and Average
Finding Median
Finding Mode
Inserting Items
Removing Items
Nonzero Lower Bounds
Two Dimensions
Higher Dimensions
Triangular Arrays
Sparse Arrays
Find a Row or Column
Get a Value
Set a Value
Delete a Value
Matrices
Column-Ordered Sparse Matrices
Summary
Exercises
Chapter 5 Stacks and Queues
Stacks
Linked-List Stacks
Array Stacks
Double Stacks
Stack Algorithms
Reversing an Array
Train Sorting
Tower of Hanoi
Stack Insertionsort
Stack Selectionsort
Queues
Linked-List Queues
Array Queues
Specialized Queues
Priority Queues
Deques
Binomial Heaps
Binomial Trees
Binomial Heaps
Merging Trees
Merging Heaps
Merging Tree Lists
Merging Trees
Enqueue
Dequeue
Runtime
Summary
Exercises
Chapter 6 Sorting
O(N2 ) Algorithms
Insertionsort in Arrays
Selectionsort in Arrays
Bubblesort
O(NlogN) Algorithms
Heapsort
Storing Complete Binary Trees
Defining Heaps
Implementing Heapsort
Quicksort
Analyzing Quicksort’s Run Time
Picking a Dividing Item
Implementing Quicksort with Stacks
Implementing Quicksort in Place
Using Quicksort
Mergesort
Sub O(Nlog N) Algorithms
Countingsort
Pigeonhole Sort
Bucketsort
Summary
Exercises
Chapter 7 Searching
Linear Search
Binary Search
Interpolation Search
Majority Voting
Summary
Exercises
Chapter 8 Hash Tables
Hash Table Fundamentals
Chaining
Open Addressing
Removing Items
Linear Probing
Quadratic Probing
Pseudorandom Probing
Double Hashing
Ordered Hashing
Summary
Exercises
Chapter 9 Recursion
Basic Algorithms
Factorial
Fibonacci Numbers
Rod-Cutting
Brute Force
Recursion
Tower of Hanoi
Graphical Algorithms
Koch Curves
Hilbert Curve
Sierpiski Curve
Gaskets
The Skyline Problem
Lists
Divide and Conquer
Backtracking Algorithms
Eight Queens Problem
Knight’s Tour
Selections and Permutations
Selections with Loops
Selections with Duplicates
Selections Without Duplicates
Permutations with Duplicates
Permutations Without Duplicates
Round-Robin Scheduling
Odd Number of Teams
Even Number of Teams
Implementation
Recursion Removal
Tail Recursion Removal
Dynamic Programming
Bottom-Up Programming
General Recursion Removal
Summary
Exercises
Chapter 10 Trees
Tree Terminology
Binary Tree Properties
Tree Representations
Building Trees in General
Building Complete Trees
Tree Traversal
Preorder Traversal
Inorder Traversal
Postorder Traversal
Breadth-First Traversal
Traversal Uses
Traversal Run Times
Sorted Trees
Adding Nodes
Finding Nodes
Deleting Nodes
Lowest Common Ancestors
Sorted Trees
Parent Pointers
Parents and Depths
General Trees
Euler Tours
All Pairs
Threaded Trees
Building Threaded Trees
Using Threaded Trees
Specialized Tree Algorithms
The Animal Game
Expression Evaluation
Interval Trees
Building the Tree
Intersecting with Points
Intersecting with Intervals
Quadtrees
Adding Items
Finding Items
Tries
Adding Items
Finding Items
Summary
Exercises
Chapter 11 Balanced Trees
AVL Trees
Adding Values
Deleting Values
2-3 Trees
Adding Values
Deleting Values
B-Trees
Adding Values
Deleting Values
Balanced Tree Variations
Top-down B-trees
B+trees
Summary
Exercises
Chapter 12 Decision Trees
Searching Game Trees
Minimax
Initial Moves and Responses
Game Tree Heuristics
Searching General Decision Trees
Optimization Problems
Exhaustive Search
Branch and Bound
Decision Tree Heuristics
Random Search
Improving Paths
Simulated Annealing
Hill Climbing
Sorted Hill Climbing
Other Decision Tree Problems
Generalized Partition Problem
Subset Sum
Bin Packing
Cutting Stock
Knapsack
Traveling Salesman Problem
Satisfiability
Swarm Intelligence
Ant Colony Optimization
General Optimization
Traveling Salesman
Bees Algorithm
Swarm Simulation
Boids
Pseudoclassical Mechanics
Goals and Obstacles
Summary
Exercises
Chapter 13 Basic Network Algorithms
Network Terminology
Network Representations
Traversals
Depth-First Traversal
Breadth-First Traversal
Connectivity Testing
Spanning Trees
Minimal Spanning Trees
Euclidean Minimum Spanning Trees
Building Mazes
Strongly Connected Components
Kosaraju’s Algorithm
Algorithm Discussion
Finding Paths
Finding Any Path
Label-Setting Shortest Paths
Label-Correcting Shortest Paths
All-Pairs Shortest Paths
Transitivity
Transitive Closure
Transitive Reduction
Acyclic Networks
General Networks
Shortest Path Modifications
Shape Points
Early Stopping
Bidirectional Search
Best-First Search
Turn Penalties and Prohibitions
Geometric Calculations
Expanded Node Networks
Interchange Networks
Summary
Exercises
Chapter 14 More Network Algorithms
Topological Sorting
Cycle Detection
Map Coloring
Two-Coloring
Three-Coloring
Four-Coloring
Five-Coloring
Other Map-Coloring Algorithms
Maximal Flow
Work Assignment
Minimal Flow Cut
Network Cloning
Dictionaries
Clone References
Cliques
Brute Force
Bron–Kerbosch
Sets R, P, and X
Recursive Calls
Pseudocode
Example
Variations
Finding Triangles
Brute Force
Checking Local Links
Chiba and Nishizeki
Community Detection
Maximal Cliques
Girvan–Newman
Clique Percolation
Eulerian Paths and Cycles
Brute Force
Fleury’s Algorithm
Hierholzer’s Algorithm
Summary
Exercises
Chapter 15 String Algorithms
Matching Parentheses
Evaluating Arithmetic Expressions
Building Parse Trees
Pattern Matching
DFAs
Building DFAs for Regular Expressions
NFAs
String Searching
Calculating Edit Distance
Phonetic Algorithms
Soundex
Metaphone
Summary
Exercises
Chapter 16 Cryptography
Terminology
Transposition Ciphers
Row/Column Transposition
Column Transposition
Route Ciphers
Substitution Ciphers
Caesar Substitution
Vigenère Cipher
Simple Substitution
One-Time Pads
Block Ciphers
Substitution-Permutation Networks
Feistel Ciphers
Public-Key Encryption and RSA
Euler’s Totient Function
Multiplicative Inverses
An RSA Example
Practical Considerations
Other Uses for Cryptography
Summary
Exercises
Chapter 17 Complexity Theory
Notation
Complexity Classes
Reductions
3SAT
Bipartite Matching
NP-Hardness
Detection, Reporting, and Optimization Problems
Detection ≤p Reporting
Reporting ≤p Optimization
Reporting ≤p Detection
Optimization ≤p Reporting
Approximate Optimization
NP-Complete Problems
Summary
Exercises
Chapter 18 Distributed Algorithms
Types of Parallelism
Systolic Arrays
Distributed Computing
Multi-CPU Processing
Race Conditions
Deadlock
Quantum Computing
Distributed Algorithms
Debugging Distributed Algorithms
Embarrassingly Parallel Algorithms
Mergesort
Dining Philosophers
Randomization
Resource Hierarchy
Waiter
Chandy/Misra
The Two Generals Problem
Byzantine Generals
Consensus
Leader Election
Snapshot
Clock Synchronization
Summary
Exercises
Chapter 19 Interview Puzzles
Asking Interview Puzzle Questions
Answering Interview Puzzle Questions
Summary
Exercises
Appendix A Summary of Algorithmic Concepts
Chapter 1: Algorithm Basics
Chapter 2: Numeric Algorithms
Chapter 3: Linked Lists
Chapter 4: Arrays
Chapter 5: Stacks and Queues
Chapter 6: Sorting
Chapter 7: Searching
Chapter 8: Hash Tables
Chapter 9: Recursion
Chapter 10: Trees
Chapter 11: Balanced Trees
Chapter 12: Decision Trees
Chapter 13: Basic Network Algorithms
Chapter 14: More Network Algorithms
Chapter 15: String Algorithms
Chapter 16: Cryptography
Chapter 17: Complexity Theory
Chapter 18: Distributed Algorithms
Chapter 19: Interview Puzzles
Appendix B Solutions to Exercises
Chapter 1: Algorithm Basics
Chapter 2: Numerical Algorithms
Chapter 3: Linked Lists
Chapter 4: Arrays
Chapter 5: Stacks and Queues
Chapter 6: Sorting
Chapter 7: Searching
Chapter 8: Hash Tables
Chapter 9: Recursion
Chapter 10: Trees
Chapter 11: Balanced Trees
Chapter 12: Decision Trees
Chapter 13: Basic Network Algorithms
Chapter 14: More Network Algorithms
Chapter 15: String Algorithms
Chapter 16: Encryption
Chapter 17: Complexity Theory
Chapter 18: Distributed Algorithms
Chapter 19: Interview Puzzles
Glossary
Index
EULA