The Self-Taught Computer Scientist. Cory Althoff
section id="u0346efc9-90a8-5727-bbb1-233832380e16">
Table of Contents
1 Cover
3 Introduction What You Will Learn Who Is This Book For? Self-Taught Success Stories Getting Started Sticking with It
4 I: Introduction to Algorithms 1 What Is an Algorithm? Analyzing Algorithms Constant Time Logarithmic Time Linear Time Log-Linear Time Quadratic Time Cubic Time Exponential Time Best-Case vs. Worst-Case Complexity Space Complexity Why Is This Important? Vocabulary Challenge 2 Recursion When to Use Recursion Vocabulary Challenge 3 Search Algorithms Linear Search When to Use a Linear Search Binary Search When to Use a Binary Search Searching for Characters Vocabulary Challenge 4 Sorting Algorithms Bubble Sort When to Use Bubble Sort Insertion Sort When to Use Insertion Sort Merge Sort When to Use Merge Sort Sorting Algorithms in Python Vocabulary Challenge 5 String Algorithms Anagram Detection Palindrome Detection Last Digit Caesar Cipher Vocabulary Challenge 6 Math Binary Bitwise Operators FizzBuzz Greatest Common Factor Euclid's Algorithm Primes Vocabulary Challenge 7 Self-Taught Inspiration: Margaret Hamilton
5 II: Data Structures 8 What Is a Data Structure? Vocabulary Challenge 9 Arrays Array Performance Creating an Array Moving Zeros Combining Two Lists Finding the Duplicates in a List Finding the Intersection of Two Lists Vocabulary Challenge 10 Linked Lists Linked List Performance Create a Linked List Search a Linked List Removing a Node from a Linked List Finding a Linked List Cycle Vocabulary