Algorithms For Dummies, 2nd Edition

Book description

Your secret weapon to understanding—and using!—one of the most powerful influences in the world today

From your Facebook News Feed to your most recent insurance premiums—even making toast!—algorithms play a role in virtually everything that happens in modern society and in your personal life. And while they can seem complicated from a distance, the reality is that, with a little help, anyone can understand—and even use—these powerful problem-solving tools!

In Algorithms For Dummies, you'll discover the basics of algorithms, including what they are, how they work, where you can find them (spoiler alert: everywhere!), who invented the most important ones in use today (a Greek philosopher is involved), and how to create them yourself.

You'll also find:

  • Dozens of graphs and charts that help you understand the inner workings of algorithms
  • Links to an online repository called GitHub for constant access to updated code
  • Step-by-step instructions on how to use Google Colaboratory, a zero-setup coding environment that runs right from your browser

Whether you're a curious internet user wondering how Google seems to always know the right answer to your question or a beginning computer science student looking for a head start on your next class, Algorithms For Dummies is the can't-miss resource you've been waiting for.

Table of contents

  1. Cover
  2. Title Page
  3. Copyright
  4. Introduction
    1. About This Book
    2. Foolish Assumptions
    3. Icons Used in This Book
    4. Beyond the Book
    5. Where to Go from Here
  5. Part 1: Getting Started with Algorithms
    1. Chapter 1: Introducing Algorithms
      1. Describing Algorithms
      2. Using Computers to Solve Problems
      3. Distinguishing between Issues and Solutions
      4. Structuring Data to Obtain a Solution
    2. Chapter 2: Considering Algorithm Design
      1. Starting to Solve a Problem
      2. Dividing and Conquering
      3. Learning that Greed Can Be Good
      4. Computing Costs and Following Heuristics
      5. Evaluating Algorithms
    3. Chapter 3: Working with Google Colab
      1. Defining Google Colab
      2. Working with Notebooks
      3. Performing Common Tasks
      4. Using Hardware Acceleration
      5. Executing the Code
      6. Getting Help
    4. Chapter 4: Performing Essential Data Manipulations Using Python
      1. Performing Calculations Using Vectors and Matrixes
      2. Creating Combinations the Right Way
      3. Getting the Desired Results Using Recursion
      4. Performing Tasks More Quickly
    5. Chapter 5: Developing a Matrix Computation Class
      1. Avoiding the Use of NumPy
      2. Understanding Why Using a Class is Important
      3. Building the Basic Class
      4. Manipulating the Matrix
  6. Part 2: Understanding the Need to Sort and Search
    1. Chapter 6: Structuring Data
      1. Determining the Need for Structure
      2. Stacking and Piling Data in Order
      3. Working with Trees
      4. Representing Relations in a Graph
    2. Chapter 7: Arranging and Searching Data
      1. Sorting Data Using Merge Sort and Quick Sort
      2. Using Search Trees and the Heap
      3. Relying on Hashing
  7. Part 3: Exploring the World of Graphs
    1. Chapter 8: Understanding Graph Basics
      1. Explaining the Importance of Networks
      2. Defining How to Draw a Graph
      3. Measuring Graph Functionality
      4. Putting a Graph in Numeric Format
    2. Chapter 9: Reconnecting the Dots
      1. Traversing a Graph Efficiently
      2. Sorting the Graph Elements
      3. Reducing to a Minimum Spanning Tree
      4. Finding the Shortest Route
    3. Chapter 10: Discovering Graph Secrets
      1. Envisioning Social Networks as Graphs
      2. Navigating a Graph
    4. Chapter 11: Getting the Right Web page
      1. Finding the World in a Search Engine
      2. Explaining the PageRank Algorithm
      3. Implementing PageRank
      4. Going Beyond the PageRank Paradigm
  8. Part 4: Wrangling Big Data
    1. Chapter 12: Managing Big Data
      1. Transforming Power into Data
      2. Streaming Flows of Data
      3. Sketching an Answer from Stream Data
    2. Chapter 13: Parallelizing Operations
      1. Managing Immense Amounts of Data
      2. Working Out Algorithms for MapReduce
    3. Chapter 14: Compressing and Concealing Data
      1. Making Data Smaller
      2. Hiding Your Secrets with Cryptography
  9. Part 5: Challenging Difficult Problems
    1. Chapter 15: Working with Greedy Algorithms
      1. Deciding When It Is Better to Be Greedy
      2. Finding Out How Greedy Can Be Useful
    2. Chapter 16: Relying on Dynamic Programming
      1. Explaining Dynamic Programming
      2. Discovering the Best Dynamic Recipes
    3. Chapter 17: Using Randomized Algorithms
      1. Defining How Randomization Works
      2. Putting Randomness into your Logic
    4. Chapter 18: Performing Local Search
      1. Understanding Local Search
      2. Presenting local search tricks
      3. Solving Satisfiability of Boolean Circuits
    5. Chapter 19: Employing Linear Programming
      1. Using Linear Functions as a Tool
      2. Using Linear Programming in Practice
    6. Chapter 20: Considering Heuristics
      1. Differentiating Heuristics
      2. Routing Robots Using Heuristics
      3. Explaining Path Finding Algorithms
  10. Part 6: The Part of Tens
    1. Chapter 21: Ten Algorithms That Are Changing the World
      1. Using Sort Routines
      2. Looking for Things with Search Routines
      3. Shaking Things Up with Random Numbers
      4. Performing Data Compression
      5. Keeping Data Secret
      6. Changing the Data Domain
      7. Analyzing Links
      8. Spotting Data Patterns
      9. Dealing with Automation and Automatic Responses
      10. Creating Unique Identifiers
    2. Chapter 22: Ten Algorithmic Problems Yet to Solve
      1. Solving Problems Quickly
      2. Solving 3SUM Problems More Efficiently
      3. Making Matrix Multiplication Faster
      4. Determining Whether an Application Will End
      5. Creating and Using One-Way Functions
      6. Multiplying Really Large Numbers
      7. Dividing a Resource Equally
      8. Reducing Edit Distance Calculation Time
      9. Playing the Parity Game
      10. Understanding Spatial Issues
  11. Index
  12. About the Authors
  13. Advertisement Page
  14. Connect with Dummies
  15. End User License Agreement

Product information

  • Title: Algorithms For Dummies, 2nd Edition
  • Author(s): John Paul Mueller, Luca Massaron
  • Release date: May 2022
  • Publisher(s): For Dummies
  • ISBN: 9781119869986