Think Data Structures: Algorithms and Information Retrieval in Java
Free

Think Data Structures: Algorithms and Information Retrieval in Java

By Allen B. Downey
Free
Book Description
Table of Contents
  • Preface
    • Prerequisites
  • Interfaces
    • Why are there two kinds of List?
    • Interfaces in Java
    • The List interface
    • Exercise 1
  • Analysis of Algorithms
    • Selection sort
    • Big O notation
    • Exercise 2
  • ArrayList
    • Classifying MyArrayList methods
    • Classifying add
    • Problem Size
    • Linked Data Structures
    • Exercise 3
    • A note on garbage collection
  • LinkedList
    • Classifying MyLinkedList methods
    • Comparing MyArrayList and MyLinkedList
    • Profiling
    • Interpreting results
    • Exercise 4
  • Doubly-linked list
    • Performance profiling results
    • Profiling LinkedList methods
    • Adding to the end of a LinkedList
    • Doubly-linked list
    • Choosing a Structure
  • Tree traversal
    • Search engines
    • Parsing HTML
    • Using jsoup
    • Iterating through the DOM
    • Depth-first search
    • Stacks in Java
    • Iterative DFS
  • Getting to Philosophy
    • Getting started
    • Iterables and Iterators
    • WikiFetcher
    • Exercise 5
  • Indexer
    • Data structure selection
    • TermCounter
    • Exercise 6
  • The Map interface
    • Implementing MyLinearMap
    • Exercise 7
    • Analyzing MyLinearMap
  • Hashing
    • Hashing
    • How does hashing work?
    • Hashing and mutation
    • Exercise 8
  • HashMap
    • Exercise 9
    • Analyzing MyHashMap
    • The tradeoffs
    • Profiling MyHashMap
    • Fixing MyHashMap
    • UML class diagrams
  • TreeMap
    • What's wrong with hashing?
    • Binary search tree
    • Exercise 10
    • Implementing a TreeMap
  • Binary search tree
    • A simple MyTreeMap
    • Searching for values
    • Implementing put
    • In-order traversal
    • The logarithmic methods
    • Self-balancing trees
    • One more exercise
  • Persistence
    • Redis
    • Redis clients and servers
    • Making a Redis-backed index
    • Redis data types
    • Exercise 11
    • More suggestions if you want them
    • A few design hints
  • Crawling Wikipedia
    • The Redis-backed indexer
    • Analysis of lookup
    • Analysis of indexing
    • Graph traversal
    • Exercise 12
  • Boolean search
    • Crawler solution
    • Information retrieval
    • Boolean search
    • Exercise 13
    • Comparable and Comparator
    • Extensions
  • Sorting
    • Insertion sort
    • Exercise 14
    • Analysis of merge sort
    • Radix sort
    • Heap sort
    • Bounded heap
    • Space complexity
  • Index
    No review for this book yet, be the first to review.
      No comment for this book yet, be the first to comment
      You May Also Like