2 options
A common-sense guide to data structures and algorithms in python. Volume 1 : level up your core programming skills. / Jay Wengrow; edited by Katharine Dvorak.
- Format:
- Book
- Author/Creator:
- Wengrow, Jay, author.
- Language:
- English
- Subjects (All):
- JavaScript (Computer program language).
- Computer programming.
- Physical Description:
- 1 online resource (489 pages)
- Edition:
- First edition.
- Place of Publication:
- [Raleigh, North Carolina] : The Pragmatic Programmers, LLC, [2023]
- Summary:
- A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1 by Jay Wengrow provides an accessible introduction to the fundamental concepts of data structures and algorithms using Python. The book aims to demystify complex algorithmic content with a direct and engaging writing style, making it an ideal resource for beginners and software engineers seeking to enhance their programming skills. It offers clear explanations, practical examples, and clever illustrations to make the subject matter approachable, even for those without a strong mathematical background. The book covers key topics such as arrays, sorting algorithms, recursion, binary search trees, and graph algorithms, focusing on practical application and optimization techniques. Designed as a comprehensive reference, it encourages readers to improve their coding efficiency and understand the importance of algorithmic thinking in software development. Generated by AI.
- Contents:
- Cover
- Table of Contents
- Preface
- Who Is This Book For?
- The Python Edition
- A Note About the Code
- What's in This Book?
- How to Read This Book
- Online Resources
- Connecting
- Acknowledgments
- 1. Why Data Structures Matter
- Data Structures
- The Array: The Foundational Data Structure
- Measuring Speed
- Reading
- Searching
- Insertion
- Deletion
- Sets: How a Single Rule Can Affect Efficiency
- Wrapping Up
- Exercises
- 2. Why Algorithms Matter
- Ordered Arrays
- Searching an Ordered Array
- Binary Search
- Binary Search vs. Linear Search
- 3. O Yes! Big O Notation
- Big O: How Many Steps Relative to N Elements?
- The Soul of Big O
- An Algorithm of the Third Kind
- Logarithms
- O(log N) Explained
- Practical Examples
- 4. Speeding Up Your Code with Big O
- Bubble Sort
- Bubble Sort in Action
- The Efficiency of Bubble Sort
- A Quadratic Problem
- A Linear Solution
- 5. Optimizing Code With and Without Big O
- Selection Sort
- Selection Sort in Action
- The Efficiency of Selection Sort
- Ignoring Constants
- Big O Categories
- 6. Optimizing for Optimistic Scenarios
- Insertion Sort
- Insertion Sort in Action
- The Efficiency of Insertion Sort
- The Average Case
- A Practical Example
- 7. Big O in Everyday Code
- Mean Average of Even Numbers
- Word Builder
- Array Sample
- Average Celsius Reading
- Clothing Labels
- Count the Ones
- Palindrome Checker
- Get All the Products
- Password Cracker
- 8. Blazing Fast Lookup with Hash Tables
- Hash Tables
- Hashing with Hash Functions
- Building a Thesaurus for Fun and Profit, but Mainly Profit
- Hash Table Lookups
- Dealing with Collisions.
- Making an Efficient Hash Table
- Hash Tables for Organization
- Hash Tables for Speed
- 9. Crafting Elegant Code with Stacks and Queues
- Stacks
- Abstract Data Types
- Stacks in Action
- The Importance of Constrained Data Structures
- Queues
- Queues in Action
- 10. Recursively Recurse with Recursion
- Recurse Instead of Loop
- The Base Case
- Reading Recursive Code
- Recursion in the Eyes of the Computer
- Filesystem Traversal
- 11. Learning to Write in Recursive
- Recursive Category: Repeatedly Execute
- Recursive Category: Calculations
- Top-Down Recursion: A New Way of Thinking
- The Staircase Problem
- Anagram Generation
- 12. Dynamic Programming
- Unnecessary Recursive Calls
- The Little Fix for Big O
- The Efficiency of Recursion
- Overlapping Subproblems
- Dynamic Programming Through Memoization
- Dynamic Programming Through Going Bottom-Up
- 13. Recursive Algorithms for Speed
- Partitioning
- Quicksort
- The Efficiency of Quicksort
- Quicksort in the Worst-Case Scenario
- Quickselect
- Sorting as a Key to Other Algorithms
- 14. Node-Based Data Structures
- Linked Lists
- Implementing a Linked List
- Efficiency of Linked List Operations
- Linked Lists in Action
- Doubly Linked Lists
- Queues as Doubly Linked Lists
- 15. Speeding Up All the Things with Binary Search Trees
- Trees
- Binary Search Trees
- Binary Search Trees in Action
- Binary Search Tree Traversal
- 16. Keeping Your Priorities Straight with Heaps
- Priority Queues
- Heaps
- Heap Properties
- Heap Insertion.
- Looking for the Last Node
- Heap Deletion
- Heaps vs. Ordered Arrays
- The Problem of the Last Node…Again
- Arrays as Heaps
- Heaps as Priority Queues
- 17. It Doesn't Hurt to Trie
- Tries
- Storing Words
- Trie Search
- The Efficiency of Trie Search
- Trie Insertion
- Building Autocomplete
- Completing Autocomplete
- Tries with Values: A Better Autocomplete
- 18. Connecting Everything with Graphs
- Graphs
- Directed Graphs
- Object-Oriented Graph Implementation
- Graph Search
- Depth-First Search
- Breadth-First Search
- The Efficiency of Graph Search
- Weighted Graphs
- Dijkstra's Algorithm
- 19. Dealing with Space Constraints
- Big O of Space Complexity
- Trade-Offs Between Time and Space
- The Hidden Cost of Recursion
- 20. Techniques for Code Optimization
- Prerequisite: Determine Your Current Big O
- Start Here: The Best-Imaginable Big O
- Magical Lookups
- Recognizing Patterns
- Greedy Algorithms
- Change the Data Structure
- Parting Thoughts
- A1. Exercise Solutions
- Chapter 1
- Chapter 2
- Chapter 3
- Chapter 4
- Chapter 5
- Chapter 6
- Chapter 7
- Chapter 8
- Chapter 9
- Chapter 10
- Chapter 11
- Chapter 12
- Chapter 13
- Chapter 14
- Chapter 15
- Chapter 16
- Chapter 17
- Chapter 18
- Chapter 19
- Chapter 20
- Index
- - SYMBOLS -
- - A -
- - B -
- - C -
- - D -
- - E -
- - F -
- - G -
- - H -
- - I -
- - J -
- - K -
- - L -
- - M -
- - N -
- - O -
- - P -
- - Q -
- - R -
- - S -
- - T -
- - U -
- - V -
- - W -.
- Notes:
- Description based on publisher supplied metadata and other sources.
- Part of the metadata in this record was created by AI, based on the text of the resource.
- Description based on print version record.
- Description based on print record.
- ISBN:
- 979-88-88650-78-3
- 979-88-88650-79-0
- OCLC:
- 1439602811
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.