Phu Xuan University Library
Think Data Structures - Algorithms and Information Retrieval in Java

External

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.

Author
Allen B. Downey
Publisher
Olin College
Source
LibreTexts
License
CC BY-NC-SA
Language
EN
Category
Information Technology
Contents· 103 sections
  1. 01: Interfaces
  2. 1.01: Why are there two kinds of List?
  3. 1.02: Interfaces in Java
  4. 1.03: The List Interface
  5. 1.04: Exercise 1
  6. 02: Analysis of Algorithms
  7. 2.01: Selection Sort
  8. 2.02: Big O notation
  9. 2.03: Exercise 2
  10. 03: ArrayList
  11. 3.01: Classifying MyArrayList methods
  12. 3.02: Classifying add
  13. 3.03: Problem Size
  14. 3.04: Linked Data Structures
  15. 3.05: Exercise 3
  16. 3.06: A note on garbage collection
  17. 04: LinkedList
  18. 4.01: Classifying MyLinkedList methods
  19. 4.02: Comparing MyArrayList and MyLinkedList
  20. 4.03: Profiling
  21. 4.04: Interpreting results
  22. 4.05: Exercise 4
  23. 05: Doubly-linked list
  24. 5.01: Performance profiling results
  25. 5.02: Profiling LinkedList methods
  26. 5.03: Adding to the end of a LinkedList
  27. 5.04: Doubly-linked list
  28. 5.05: Choosing a Structure
  29. 06: Tree traversal
  30. 6.01: Search engines
  31. 6.02: Parsing HTML
  32. 6.03: Using jsoup
  33. 6.04: Iterating through the DOM
  34. 6.05: Depth-first search
  35. 6.06: Stacks in Java
  36. 6.07: Iterative DFS
  37. 07: Getting to Philosophy
  38. 7.01: Getting started
  39. 7.02: Iterables and Iterators
  40. 7.03: WikiFetcher
  41. 7.04: Exercise 5
  42. 08: Indexer
  43. 8.01: Data structure selection
  44. 8.02: TermCounter
  45. 8.03: Exercise 6
  46. 09: The Map interface
  47. 9.01: Implementing MyLinearMap
  48. 9.02: Exercise 7
  49. 9.03: Analyzing MyLinearMap
  50. 10: Hashing
  51. 10.01: Hashing
  52. 10.02: How does hashing work?
  53. 10.03: Hashing and mutation
  54. 10.04: Exercise 8
  55. 11: HashMap
  56. 11.01: Exercise 9
  57. 11.02: Analyzing MyHashMap
  58. 11.03: The tradeoffs
  59. 11.04: Profiling MyHashMap
  60. 11.05: Fixing MyHashMap
  61. 11.06: UML class diagrams
  62. 12: TreeMap
  63. 12.01: What’s wrong with hashing?
  64. 12.02: Binary search tree
  65. 12.03: Exercise 10
  66. 12.04: Implementing a TreeMap
  67. 13: Binary search tree
  68. 13.01: A simple MyTreeMap
  69. 13.02: Searching for values
  70. 13.03: Implementing put
  71. 13.04: In-order traversal
  72. 13.05: The logarithmic methods
  73. 13.06: Self-balancing trees
  74. 13.07: One more exercise
  75. 14: Persistence
  76. 14.01: Redis
  77. 14.02: Redis clients and servers
  78. 14.03: Making a Redis-backed index
  79. 14.04: Redis data types
  80. 14.05: Exercise 11
  81. 14.06: More suggestions if you want them
  82. 14.07: A few design hints
  83. 15: Crawling Wikipedia
  84. 15.01: The Redis-backed indexer
  85. 15.02: Analysis of lookup
  86. 15.03: Analysis of indexing
  87. 15.04: Graph traversal
  88. 15.05: Exercise 12
  89. 16: Boolean search
  90. 16.01: Crawler solution
  91. 16.02: Information retrieval
  92. 16.03: Boolean search
  93. 16.04: Exercise 13
  94. 16.05: Comparable and Comparator
  95. 16.06: Extensions
  96. 17: Sorting
  97. 17.01: Insertion sort
  98. 17.02: Exercise 14
  99. 17.03: Analysis of merge sort
  100. 17.04: Radix sort
  101. 17.05: Heap sort
  102. 17.06: Bounded heap
  103. 17.07: Space complexity