
Nguồn ngoài
Think Data Structures - Algorithms and Information Retrieval in Java
This book is intended for college students in computer science and related fields, as well as professional software engineers, people training in software engineering, and people preparing for technical interviews.
- Tác giả
- Allen B. Downey
- Nhà xuất bản
- Olin College
- Nguồn
- LibreTexts
- Giấy phép
- CC BY-NC-SA
- Ngôn ngữ
- EN
- Danh mục
- Công nghệ thông tin
Mục lục· 103 mục
- 01: Interfaces
- 1.01: Why are there two kinds of List?
- 1.02: Interfaces in Java
- 1.03: The List Interface
- 1.04: Exercise 1
- 02: Analysis of Algorithms
- 2.01: Selection Sort
- 2.02: Big O notation
- 2.03: Exercise 2
- 03: ArrayList
- 3.01: Classifying MyArrayList methods
- 3.02: Classifying add
- 3.03: Problem Size
- 3.04: Linked Data Structures
- 3.05: Exercise 3
- 3.06: A note on garbage collection
- 04: LinkedList
- 4.01: Classifying MyLinkedList methods
- 4.02: Comparing MyArrayList and MyLinkedList
- 4.03: Profiling
- 4.04: Interpreting results
- 4.05: Exercise 4
- 05: Doubly-linked list
- 5.01: Performance profiling results
- 5.02: Profiling LinkedList methods
- 5.03: Adding to the end of a LinkedList
- 5.04: Doubly-linked list
- 5.05: Choosing a Structure
- 06: Tree traversal
- 6.01: Search engines
- 6.02: Parsing HTML
- 6.03: Using jsoup
- 6.04: Iterating through the DOM
- 6.05: Depth-first search
- 6.06: Stacks in Java
- 6.07: Iterative DFS
- 07: Getting to Philosophy
- 7.01: Getting started
- 7.02: Iterables and Iterators
- 7.03: WikiFetcher
- 7.04: Exercise 5
- 08: Indexer
- 8.01: Data structure selection
- 8.02: TermCounter
- 8.03: Exercise 6
- 09: The Map interface
- 9.01: Implementing MyLinearMap
- 9.02: Exercise 7
- 9.03: Analyzing MyLinearMap
- 10: Hashing
- 10.01: Hashing
- 10.02: How does hashing work?
- 10.03: Hashing and mutation
- 10.04: Exercise 8
- 11: HashMap
- 11.01: Exercise 9
- 11.02: Analyzing MyHashMap
- 11.03: The tradeoffs
- 11.04: Profiling MyHashMap
- 11.05: Fixing MyHashMap
- 11.06: UML class diagrams
- 12: TreeMap
- 12.01: What’s wrong with hashing?
- 12.02: Binary search tree
- 12.03: Exercise 10
- 12.04: Implementing a TreeMap
- 13: Binary search tree
- 13.01: A simple MyTreeMap
- 13.02: Searching for values
- 13.03: Implementing put
- 13.04: In-order traversal
- 13.05: The logarithmic methods
- 13.06: Self-balancing trees
- 13.07: One more exercise
- 14: Persistence
- 14.01: Redis
- 14.02: Redis clients and servers
- 14.03: Making a Redis-backed index
- 14.04: Redis data types
- 14.05: Exercise 11
- 14.06: More suggestions if you want them
- 14.07: A few design hints
- 15: Crawling Wikipedia
- 15.01: The Redis-backed indexer
- 15.02: Analysis of lookup
- 15.03: Analysis of indexing
- 15.04: Graph traversal
- 15.05: Exercise 12
- 16: Boolean search
- 16.01: Crawler solution
- 16.02: Information retrieval
- 16.03: Boolean search
- 16.04: Exercise 13
- 16.05: Comparable and Comparator
- 16.06: Extensions
- 17: Sorting
- 17.01: Insertion sort
- 17.02: Exercise 14
- 17.03: Analysis of merge sort
- 17.04: Radix sort
- 17.05: Heap sort
- 17.06: Bounded heap
- 17.07: Space complexity