
Mastering Algorithms with Perl
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Copyright
- Table of Contents
- Preface
- About This Book
- Theory or Practice?
- Organization of This Book
- Conventions Used in This Book
- What You Should Know Before Reading This Book
- What You Should Have Before Reading This Book
- Online Information About This Book
- Acknowledgments
- Comments and Questions
- Introduction
- What Is an Algorithm?
- A Sample Algorithm: Binary Search
- Adapting Algorithms
- Generality
- Efficiency
- Space Versus Time
- Benchmarking
- Floating-Point Numbers
- Temporary Variables
- Caching
- Evaluating Algorithms: O(N) Notation
- Recurrent Themes in Algorithms
- Recursion
- Divide and Conquer
- Dynamic Programming
- Choosing the Right Representation
- Basic Data Structures
- Perl's Built-in Data Structures
- Build Your Own Data Structure
- A Simple Example
- Lols and Lohs and Hols and Hohs
- Objects
- Using a Constructed Datatype
- Shortcuts
- Perl Arrays: Many Data Structures in One
- Queues
- Stacks
- Deques
- Still More Perl Arrays
- Advanced Data Structures
- Linked Lists
- Linked List Implementations
- Tracking Both Ends of Linked Lists
- Additional Linked List Operations
- Circular Linked Lists
- Garbage Collection in Perl
- Doubly-Linked Lists
- Infinite Lists
- The Cost of Traversal
- Binary Trees
- Keeping Trees Balanced
- Heaps
- Binary Heaps
- Janus Heap
- The Heap Modules
- Future CPAN Modules
- Sorting
- An Introduction to Sorting
- Perl's sort Function
- ASCII Order
- Numeric Order
- Reverse Order: From Highest To Lowest
- Sort::Fields
- Sort::Versions
- Dictionary Order
- Sorting Efficiency
- Sorting Hashes Is Not What You Might Think
- All Sorts of Sorts
- Quadratic Sorting Algorithms
- Log-Linear Sorting Algorithms
- Beating O(N log N)
- External Sorting
- Sorting Algorithms Summary
- O(N2) Sorts
- Shellsort
- O(N log N) Sorts
- How Well Did We Do?
- Searching
- Hash Search and Other Non-Searches
- Lookup Searches
- Ransack Search
- Linear Search
- Binary Search in a List
- Proportional Search
- Binary Search in a Tree
- Should You Use a List or a Tree for Binary Searching?
- Bushier Trees
- Lists of Lists
- B-Trees
- Hybrid Searches
- Lookup Search Recommendations
- Generative Searches
- Game Interface
- Exhaustive Search
- Alternatives to Exhaustive Search in Games
- Nongame Dynamic Searches
- Sets
- Venn Diagrams
- Creating Sets
- Creating Sets Using Hashes
- Creating Sets Using Bit Vectors
- Set Union and Intersection
- Union
- Intersection
- Set Universe
- Complement Set
- Null Set
- Set Union and Intersection Using Hashes
- Union and Intersection Using Bit Vectors
- Set Differences
- Set Difference
- Set Symmetric Difference
- Set Differences Using Hashes
- Set Differences Using Bit Vectors
- Counting Set Elements
- Set Relations
- Set Relations Using Hashes
- Set Relations Using Bit Vectors
- The Set Modules of CPAN
- Set::Scalar
- Set::Object
- Set::IntSpan
- Bit::Vector
- Set::IntRange
- Sets of Sets
- Power Sets
- Power Sets Using Hashes
- Multivalued Sets
- Multivalued Logic
- Fuzzy Sets
- Bags
- Sets Summary
- Matrices
- Creating Matrices
- Manipulating Individual Elements
- Finding the Dimensions of a Matrix
- Displaying Matrices
- Adding or Multiplying Constants
- Adding a Constant to a Matrix
- Adding a Matrix to a Matrix
- Transposing a Matrix
- Multiplying Matrices
- Extracting a Submatrix
- Combining Matrices
- Inverting a Matrix
- Computing the Determinant
- Gaussian Elimination
- Eigenvalues and Eigenvectors
- Computing Eigenvalues
- The Matrix Chain Product
- Delving Deeper
- Graphs
- Vertices and Edges
- Edge Direction
- Vertex Degree and Vertex Classes
- Derived Graphs
- Graph Transpose
- Complete Graph
- Complement Graph
- Density
- Graph Attributes
- Graph Representation in Computers
- Our Graph Representation
- Graph Traversal
- Depth-First Search
- Topological Sort
- Breadth-First Search
- Implementing Graph Traversal
- Paths and Bridges
- The Seven Bridges of Königsberg
- Graph Biology: Trees, Forests, DAGS, Ancestors, and Descendants
- Parents and Children
- Edge and Graph Classes
- Edge Classes
- Graph Classes: Connectivity
- Biconnectivity
- Strongly Connected Graphs
- Minimum Spanning Trees
- Shortest Paths
- Transitive Closure
- Flow Networks
- Traveling Salesman Problem
- CPAN Graph Modules
- Strings
- Perl Builtins
- Exact Matching
- Regular Expressions
- String-Matching Algorithms
- Naïve Matching
- Rabin-Karp
- Knuth-Morris-Pratt
- Boyer-Moore
- Shift-Op
- Baeza-Yates-Gonnet Shift-OR Exact Matching
- Approximate Matching
- Baeza-Yates-Gonnet Shift-Add
- Wu-Manber k-differences
- Longest Common Subsequences
- Summary of String Matching Algorithms
- String::Approx
- Phonetic Algorithms
- Text::Soundex
- Text::Metaphone
- Stemming and Inflection
- Modules for Stemming and Inflection
- Parsing
- Finite Automata
- Grammars
- Parsing Up and Down
- Interpreters and Compilers
- Modules for Lexing and Parsing
- Compression
- Run-Length Encoding
- Huffman Encoding
- compress, GNU gzip, pkzip
- Geometric Algorithms
- Distance
- Euclidean Distance
- Manhattan Distance
- Maximum Distance
- Spherical Distance
- Area, Perimeter, and Volume
- Triangle
- Polygon Area
- Polygon Perimeter
- Direction
- Intersection
- Line Intersection
- Inclusion
- Point in Polygon
- Point in Triangle
- Point in Quadrangle
- Boundaries
- Bounding Box
- Convex Hull
- Closest Pair of Points
- Geometric Algorithms Summary
- CPAN Graphics Modules
- 2-D Images
- Charts a.k.a. Business Graphics
- 3-D Modeling
- Widget/GUI Toolkits
- Number Systems
- Integers and Reals
- Constants
- Pure Integer Arithmetic
- Precision
- Rounding Numbers
- Very Big, Very Small, and Very Precise Numbers
- Fractions
- Strange Systems
- Bits and Bases
- Bit Vectors
- Complex Numbers
- Polar Coordinates
- Dates and Times
- Roman Numerals
- Trigonometry
- Significant Series
- Arithmetic and Geometric Progressions
- The Fibonacci Sequence
- Harmonic Series
- The Riemann Zeta Function and Bernoulli Numbers
- Number Theory
- Basic Number Theory
- Linear Combination Theorem
- Greatest Common Divisor
- GCD: Linear Combination
- Least Common Multiple
- Prime Numbers
- Caching: Another Example
- Noninfinite Arithmetic
- Modular Arithmetic
- Chinese Remainder Theorem
- Modular Division
- Chinese Remainder Theorem Revisited
- Integer Exponentiation
- Modular Exponentiation
- Miller-Rabin: Prime Generation Revisited
- Unsolved Problems
- Is the Collatz Conjecture False?
- Is There an Odd Perfect Number?
- Is the Goldbach Conjecture False?
- Cryptography
- Legal Issues
- Authorizing People with Passwords
- Password Hazards
- Authorization of Data: Checksums and More
- Obscuring Data: Encryption
- Perfect Encryption: The One-Time Pad
- Shared-Secret Encryptions
- Analysis of Shared-Secret Encryption
- Encrypting with SSLeay
- Public Key Encryption
- RSA Public Key Encryption
- El Gamal Public Key Encryption
- Choosing Between Public Key and Private Key
- Hiding Data: Steganography
- Winnowing and Chaffing
- Encrypted Perl Code
- Other Issues
- Probability
- Random Numbers
- Don't Forget to Seed Your Generator
- Better Randomness
- Events
- Will the Blue Jays Win, and Will the Stock Market Go Up?
- Will Neither the Blue Jays Win nor the Stock Market Go Up?
- Will the Blue Jays Win or the Stock Market Go Up?
- Permutations and Combinations
- Permutations
- Combinations
- Probability Distributions
- Expected Value
- Rolling Dice: Uniform Distributions
- Measuring Time: Uniform Continuous Distributions
- Choosing an Element from an Array
- Picking Random BigInts
- Rolling Dice Revisited: Combining Events
- Loaded Dice and Candy Colors: Nonuniform Discrete Distributions
- Flipping a Coin: The Binomial Distribution
- The Binomial Distribution in Poker
- If the Blue Jays Score Six Runs: Conditional Probability
- The Vaunted Monty Hall Problem
- Flipping Coins Over and Over: Infinite Discrete Distributions
- How Much Snow? Continuous Distributions
- Many More Distributions
- The Bernoulli Distribution
- The Beta Distribution
- The Binomial Distribution
- The Cauchy Distribution
- The Chi Square Distribution
- The Erlang Distribution
- The Exponential Distribution
- The Gamma Distribution
- The Gaussian (Normal) Distribution
- The Geometric Distribution
- The Hypergeometric Distribution
- The Laplace Distribution
- The Log Normal Distribution
- The Maxwell Distribution
- The Pascal Distribution
- The Poisson Distribution
- The Rayleigh Distribution
- The Uniform Distribution
- Statistics
- Statistical Measures
- The Mean
- The Median
- The Mode
- Standard Deviation
- The Standard Score
- The Variance and Standard Deviation of Distributions
- Significance Tests
- How Sure Is Sure?
- The Sign Test
- The z-test
- The t-test
- The Chi-square test
- ANOVA and the F-test
- Correlation
- Computing the Covariance
- Computing the Correlation Coefficient
- Fitting a Line to Your Data
- Numerical Analysis
- Computing Derivatives and Integrals
- Computing the Derivative at a Particular Point
- Computing the Jacobian
- Computing Definite Integrals
- Solving Equations
- Simple Roots: Quadratics and Cubics
- Approximating Roots
- Multiple Nonlinear Equations
- Interpolation, Extrapolation, and Curve Fitting
- Fitting a Polynomial to a Set of Points
- Splines
- Data Smoothing
- Further Reading
- General References for Algorithms
- Graphs, Graphics, and Geometry
- String Processing and Parsing
- Numerical Methods
- General Mathematics
- Probability and Statistics
- Other References
- ASCII Character Set
- Index
- About the Authors
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.