1 option
Data Structures and Algorithms in Python.
- Format:
- Book
- Author/Creator:
- Lafore, Robert.
- Series:
- Developer's Library
- Language:
- English
- Subjects (All):
- Data structures (Computer science).
- Python (Computer program language).
- Computer algorithms.
- Algorithms.
- Physical Description:
- 1 online resource (1193 pages)
- Edition:
- 1st ed.
- Place of Publication:
- [Place of publication not identified] : ADDISON-WESLEY, 2019.
- Sydney : Addison Wesley, 2022.
- Summary:
- LEARN HOW TO USE DATA STRUCTURES IN WRITING HIGH PERFORMANCE PYTHON PROGRAMS AND ALGORITHMS This practical introduction to data structures and algorithms can help every programmer who wants to write more efficient software. Building on Robert Lafores legendary Java-based guide, this book helps you understand exactly how data structures and algorithms operate. Youll learn how to efficiently apply them with the enormously popular Python language and scale your code to handle todays big data challenges. Throughout, the authors focus on real-world examples, communicate key ideas with intuitive, interactive visualizations, and limit complexity and math to what you need to improve performance. Step-by-step, they introduce arrays, sorting, stacks, queues, linked lists, recursion, binary trees, 2-3-4 trees, hash tables, spatial data structures, graphs, and more. Their code examples and illustrations are so clear, you can understand them even if youre a near-beginner, or your experience is with other procedural or object-oriented languages. Build core computer science skills that take you beyond merely writing code Learn how data structures make programs (and programmers) more efficient See how data organization and algorithms affect how much you can do with todays, and tomorrows, computing resources Develop data structure implementation skills you can use in any language Choose the best data structure(s) and algorithms for each programming problemand recognize which ones to avoid Data Structures & Algorithms in Python is packed with examples, review questions, individual and team exercises, thought experiments, and longer programming projects. It's ideal for both self-study and classroom settings, and either as a primary text or as a complement to a more formal presentation.
- Contents:
- Cover Page
- About This eBook
- Title Page
- Copyright Page
- Contents at a Glance
- Table of Contents
- Pearson's Commitment to Diversity, Equity, and Inclusion
- Dedication Page
- Acknowledgments
- Acknowledgments to the First Edition, Data Structures and Algorithms in Java
- Acknowledgments to the Second Edition
- About the Authors
- Introduction
- Who This Book Is For
- What You Need to Know Before You Read This Book
- What You Can Learn from This Book
- Structure
- History
- Figure Credits
- Chapter 1. Overview
- What Are Data Structures and Algorithms?
- Overview of Data Structures
- Overview of Algorithms
- Some Definitions
- Programming in Python
- Object-Oriented Programming
- Summary
- Questions
- Experiments
- Chapter 2. Arrays
- The Array Visualization Tool
- Using Python Lists to Implement the Array Class
- The OrderedArray Visualization Tool
- Binary Search
- Python Code for an OrderedArray Class
- Logarithms
- Storing Objects
- Big O Notation
- Why Not Use Arrays for Everything?
- Programming Projects
- Chapter 3. Simple Sorting
- How Would You Do It?
- Bubble Sort
- Selection Sort
- Insertion Sort
- Comparing the Simple Sorts
- Chapter 4. Stacks and Queues
- Different Structures for Different Use Cases
- Stacks
- Queues
- Priority Queues
- Parsing Arithmetic Expressions
- Chapter 5. Linked Lists
- Links
- The LinkedList Visualization Tool
- A Simple Linked List
- Double-Ended Lists
- Linked List Efficiency
- Abstract Data Types and Objects
- Ordered Lists
- Doubly Linked Lists
- Circular Lists
- Iterators
- Chapter 6. Recursion.
- Triangular Numbers
- Factorials
- Anagrams
- A Recursive Binary Search
- The Tower of Hanoi
- Sorting with mergesort
- Eliminating Recursion
- Some Interesting Recursive Applications
- Chapter 7. Advanced Sorting
- Shellsort
- Partitioning
- Quicksort
- Radix Sort
- Timsort
- Chapter 8. Binary Trees
- Why Use Binary Trees?
- Tree Terminology
- An Analogy
- How Do Binary Search Trees Work?
- Finding a Node
- Inserting a Node
- Traversing the Tree
- Finding Minimum and Maximum Key Values
- Deleting a Node
- The Efficiency of Binary Search Trees
- Trees Represented as Arrays
- Printing Trees
- Duplicate Keys
- The BinarySearchTreeTester.py Program
- The Huffman Code
- Chapter 9. 2-3-4 Trees and External Storage
- Introduction to 2-3-4 Trees
- The Tree234 Visualization Tool
- Python Code for a 2-3-4 Tree
- Efficiency of 2-3-4 Trees
- 2-3 Trees
- External Storage
- Chapter 10. AVL and Red-Black Trees
- Our Approach to the Discussion
- Balanced and Unbalanced Trees
- AVL Trees
- The Efficiency of AVL Trees
- Red-Black Trees
- Using the Red-Black Tree Visualization Tool
- Experimenting with the Visualization Tool
- Rotations in Red-Black Trees
- Inserting a New Node
- Deletion
- The Efficiency of Red-Black Trees
- 2-3-4 Trees and Red-Black Trees
- Red-Black Tree Implementation
- Chapter 11. Hash Tables
- Introduction to Hashing
- Open Addressing
- Separate Chaining
- Hash Functions
- Hashing Efficiency
- Hashing and External Storage
- Experiments.
- Programming Projects
- Chapter 12. Spatial Data Structures
- Spatial Data
- Computing Distances Between Points
- Circles and Bounding Boxes
- Searching Spatial Data
- Lists of Points
- Grids
- Quadtrees
- Theoretical Performance and Optimizations
- Practical Considerations
- Further Extensions
- Chapter 13. Heaps
- Introduction to Heaps
- The Heap Visualization Tool
- Python Code for Heaps
- A Tree-Based Heap
- Heapsort
- Order Statistics
- Chapter 14. Graphs
- Introduction to Graphs
- Traversal and Search
- Minimum Spanning Trees
- Topological Sorting
- Connectivity in Directed Graphs
- Chapter 15. Weighted Graphs
- Minimum Spanning Tree with Weighted Graphs
- The Shortest-Path Problem
- The All-Pairs Shortest-Path Problem
- Efficiency
- Intractable Problems
- Chapter 16. What to Use and Why
- Analyzing the Problem
- Foundational Data Structures
- Special-Ordering Data Structures
- Sorting
- Specialty Data Structures
- Onward
- Appendixes
- Appendix A. Running the Visualizations
- For Developers: Running and Changing the Visualizations
- For Managers: Downloading and Running the Visualizations
- For Others: Viewing the Visualizations on the Internet
- Using the Visualizations
- Appendix B. Further Reading
- Data Structures and Algorithms
- Object-Oriented Programming Languages
- Object-Oriented Design (OOD) and Software Engineering
- Appendix C. Answers to Questions
- Chapter 1, "Overview"
- Chapter 2, "Arrays"
- Chapter 3, "Simple Sorting"
- Chapter 4, "Stacks and Queues"
- Chapter 5, "Linked Lists"
- Chapter 6, "Recursion".
- Chapter 7, "Advanced Sorting"
- Chapter 8, "Binary Trees"
- Chapter 9, "2-3-4 Trees and External Storage"
- Chapter 10, "AVL and Red-Black Trees"
- Chapter 11, "Hash Tables"
- Chapter 12, "Spatial Data Structures"
- Chapter 13, "Heaps"
- Chapter 14, "Graphs"
- Chapter 15, "Weighted Graphs"
- Index
- Code Snippets.
- Notes:
- Description based on publisher supplied metadata and other sources.
- ISBN:
- 9780134855912
- 0134855914
- 9780134855882
- 0134855884
- 9780134855899
- 0134855892
- OCLC:
- 1343718541
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.