My Account Log in

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.

EBSCOhost Academic eBook Collection (North America) Available online

View online

EBSCOhost eBook Community College Collection Available online

View online
Format:
Book
Author/Creator:
Wengrow, Jay, author.
Contributor:
Dvorak, Katharine, editor.
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.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account