Absolute Beginner's Guide to Algorithms, 1st edition
Published by Addison-Wesley Professional (December 8, 2023) © 2024
- Kirupa Chinnathambi
Price Reduced From: $39.99
Details
- A print text
Part I: Data Structures
Â
Chapter 1. Introduction to Data Structures .................................................................. 1
    Right Tool for the Right Job .................................................................................... 2
    Back to Data Structures ........................................................................................... 5
    Conclusion ................................................................................................................. 6
Â
Chapter 2. Big-O Notation and Complexity Analysis ................................................... 7
    It's Example Time ...................................................................................................... 8
    It's Big-O Notation Time! .......................................................................................11
    Conclusion ...............................................................................................................15
Â
Chapter 3. Arrays ....................................................................................................... 17
    What Is an Array? ....................................................................................................18
    Array Implementation / Use Cases .......................................................................24
    Arrays and Memory ................................................................................................26
    Performance Considerations .................................................................................30
    Conclusion ...............................................................................................................32
Â
Chapter 4. Linked Lists ............................................................................................... 35
    Meet the Linked List ...............................................................................................36
    Linked List: Time and Space Complexity .............................................................40
    Linked List Variations ..............................................................................................41
    Implementation .......................................................................................................44
    Conclusion ...............................................................................................................52
Â
Chapter 5. Stacks ........................................................................................................ 53
    Meet the Stack ........................................................................................................54
    A JavaScript Implementation ................................................................................56
    Stacks: Time and Space Complexity ....................................................................58
    Conclusion ...............................................................................................................59
Â
Chapter 6. Queues ..................................................................................................... 61
    Meet the Queue .....................................................................................................62
    A JavaScript Implementation ................................................................................64
    Queues: Time and Space Complexity ..................................................................66
    Conclusion ...............................................................................................................67
Â
Chapter 7. Trees ......................................................................................................... 69
    Trees 101 .................................................................................................................70
    Height and Depth ...................................................................................................75
    Conclusion ...............................................................................................................77
Â
Chapter 8. Binary Trees .............................................................................................. 79
    Meet the Binary Tree ..............................................................................................80
    A Simple Binary Tree Implementation ..................................................................86
    Conclusion ...............................................................................................................89
Â
Chapter 9. Binary Search Trees ................................................................................... 91
    It's Just a Data Structure ........................................................................................93
    Implementing a Binary Search Tree ....................................................................103
    Performance and Memory Characteristics .........................................................110
    Conclusion .............................................................................................................112
Â
Chapter 10. Heaps ...................................................................................................... 113
    Meet the Heap ......................................................................................................114
    Heap Implementation ..........................................................................................126
    Performance Characteristics ................................................................................132
    Conclusion .............................................................................................................134
Â
Chapter 11. Hashtable (aka Hashmap or Dictionary) .................................................. 137
    A Very Efficient Robot ..........................................................................................138
    From Robots to Hashing Functions ....................................................................142
    From Hashing Functions to Hashtables .............................................................145
    JavaScript Implementation/Usage ......................................................................148
    Dealing with Collisions .........................................................................................150
    Performance and Memory ...................................................................................151
    Conclusion .............................................................................................................153
Â
Chapter 12. Trie (aka Prefix Tree) ............................................................................... 155
    What Is a Trie? ......................................................................................................156
    Diving Deeper into Tries ......................................................................................167
    Many More Examples Abound! ..........................................................................172
    Implementation Time ...........................................................................................173
    Performance ..........................................................................................................179
    Conclusion .............................................................................................................181
Â
Chapter 13. Graphs .................................................................................................... 183
    What Is a Graph? ..................................................................................................184
    Graph Implementation .........................................................................................190
    Conclusion .............................................................................................................196
Â
Part II: Algorithms
Â
Chapter 14. Introduction to Recursion ....................................................................... 199
    Our Giant Cookie Problem ..................................................................................200
    Recursion in Programming ..................................................................................202
    Conclusion .............................................................................................................206
Â
Chapter 15. Fibonacci and Going Beyond Recursion ................................................. 207
    Recursively Solving the Fibonacci Sequence ....................................................209
    Recursion with Memoization ...............................................................................213
    Taking an Iteration-Based Approach ..................................................................215
    Going Deeper on the Speed ..............................................................................217
    Conclusion .............................................................................................................218
Â
Chapter 16. Towers of Hanoi ...................................................................................... 221
    How Towers of Hanoi Is Played ..........................................................................222
    The Single Disk Case ...........................................................................................223
    It's Two Disk Time .................................................................................................224
    Three Disks ............................................................................................................225
    The Algorithm .......................................................................................................228
    The Code Solution ...............................................................................................229
    Check Out the Recursiveness! ............................................................................231
    It's Math Time ........................................................................................................232
    Conclusion .............................................................................................................234
Â
Chapter 17. Search Algorithms and Linear Search ..................................................... 235
    Linear Search .........................................................................................................236
    Conclusion .............................................................................................................241
Â
Chapter 18. Faster Searching with Binary Search ....................................................... 243
    Binary Search in Action ........................................................................................243
    The JavaScript Implementation ..........................................................................250
    Runtime Performance ...........................................................................................254
    Conclusion .............................................................................................................257
Â
Chapter 19. Binary Tree Traversal ............................................................................... 259
    Breadth-First Traversal ..........................................................................................260
    Depth-First Traversal ............................................................................................265
    Implementing Our Traversal Approaches ..........................................................270
    Performance of Our Traversal Approaches ........................................................278
    Conclusion .............................................................................................................279
Â
Chapter 20. Depth-First Search (DFS) and Breadth-First Search (BFS) ....................... 281
    A Tale of Two Exploration Approaches ..............................................................282
    It's Example Time ..................................................................................................285
    When to Use DFS? When to Use BFS? ..............................................................298
    A JavaScript Implementation ..............................................................................300
    Performance Details .............................................................................................307
    Conclusion .............................................................................................................308
Â
Chapter 21. Quicksort ................................................................................................ 309
    A Look at How Quicksort Works .........................................................................310
    Another Simple Look ...........................................................................................314
    It's Implementation Time .....................................................................................319
    Performance Characteristics ................................................................................322
    Conclusion .............................................................................................................323
Â
Chapter 22. Bubblesort .............................................................................................. 325
    How Bubblesort Works ........................................................................................326
    Walkthrough ..........................................................................................................329
    The Code ...............................................................................................................333
    Conclusion .............................................................................................................333
Â
Chapter 23. Insertion Sort .......................................................................................... 335
    How Insertion Sort Works ....................................................................................336
    One More Example ..............................................................................................347
    Algorithm Overview and Implementation .........................................................349
    Performance Analysis ...........................................................................................351
    Conclusion .............................................................................................................353
Â
Chapter 24. Selection Sort ......................................................................................... 355
    Selection Sort Walkthrough .................................................................................356
    Algorithm Deep Dive ...........................................................................................364
    The JavaScript Implementation ..........................................................................366
    Conclusion .............................................................................................................369
Â
Chapter 25. Mergesort ............................................................................................... 371
    How Mergesort Works .........................................................................................372
    Mergesort: The Algorithm Details ......................................................................379
    Looking at the Code ............................................................................................380
    Conclusion .............................................................................................................381
Â
Conclusion .................................................................................................................383
Â
Index ............................................................................................................................ 387
Need help? Get in touch