My Account Log in

2 options

Python data structures and algorithms : improve the performance and speed of your applications / Benjamin Baka.

Ebook Central College Complete Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Baka, Benjamin, author.
Language:
English
Subjects (All):
Python (Computer program language).
Data structures (Computer science).
Computer algorithms.
Physical Description:
1 online resource (303 pages) : illustrations
Edition:
1st edition
Place of Publication:
Birmingham : Packt, 2017.
System Details:
text file
Summary:
Implement classic and functional data structures and algorithms using Python About This Book A step by step guide, which will provide you with a thorough discussion on the analysis and design of fundamental Python data structures. Get a better understanding of advanced Python concepts such as big-o notation, dynamic programming, and functional data structures. Explore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Who This Book Is For The book will appeal to Python developers. A basic knowledge of Python is expected. What You Will Learn Gain a solid understanding of Python data structures. Build sophisticated data applications. Understand the common programming patterns and algorithms used in Python data science. Write efficient robust code. In Detail Data structures allow you to organize data in a particular way efficiently. They are critical to any problem, provide a complete solution, and act like reusable code. In this book, you will learn the essential Python data structures and the most common algorithms. With this easy-to-read book, you will be able to understand the power of linked lists, double linked lists, and circular linked lists. You will be able to create complex data structures such as graphs, stacks and queues. We will explore the application of binary searches and binary search trees. You will learn the common techniques and structures used in tasks such as preprocessing, modeling, and transforming data. We will also discuss how to organize your code in a manageable, consistent, and extendable way. The book will explore in detail sorting algorithms such as bubble sort, selection sort, insertion sort, and merge sort. By the end of the book, you will learn how to build components that are easy to understand, debug, and use in different applications. Style and Approach The easy-to-read book with its fast-paced nature will improve the productivity of Python programmers and improve the performance of Python applications. Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.
Contents:
Cover
Title Page
Copyright
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Table of Contents
Preface
Chapter 1: Python Objects, Types, and Expressions
Understanding data structures and algorithms
Python for data
The Python environment
Variables and expressions
Variable scope
Flow control and iteration
Overview of data types and objects
Strings
Lists
Functions as first class objects
Higher order functions
Recursive functions
Generators and co-routines
Classes and object programming
Special methods
Inheritance
Data encapsulation and properties
Summary
Chapter 2: Python Data Types and Structures
Operations and expressions
Boolean operations
Comparison and Arithmetic operators
Membership, identity, and logical operations
Built-in data types
None type
Numeric Types
Representation error
Sequences
Tuples
Dictionaries
Sorting dictionaries
Dictionaries for text analysis
Sets
Immutable sets
Modules for data structures and algorithms
Collections
Deques
ChainMaps
Counter objects
Ordered dictionaries
defaultdict
Named tuples
Arrays
Chapter 3: Principles of Algorithm Design
Algorithm design paradigms
Recursion and backtracking
Backtracking
Divide and conquer - long multiplication
Can we do better? A recursive approach
Runtime analysis
Asymptotic analysis
Big O notation
Composing complexity classes
Omega notation (Ω)
Theta notation (ϴ)
Amortized analysis
Chapter 4: Lists and Pointer Structures
Pointer structures
Nodes
Finding endpoints
Node
Other node types
Singly linked lists
Singly linked list class
Append operation
A faster append operation
Getting the size of the list.
Improving list traversal
Deleting nodes
List search
Clearing a list
Doubly linked lists
A doubly linked list node
Doubly linked list
Delete operation
Circular lists
Appending elements
Deleting an element
Iterating through a circular list
Chapter 5: Stacks and Queues
Stacks
Stack implementation
Push operation
Pop operation
Peek
Bracket-matching application
Queues
List-based queue
Enqueue operation
Dequeue operation
Stack-based queue
Node-based queue
Queue class
Application of queues
Media player queue
Chapter 6: Trees
Terminology
Tree nodes
Binary trees
Binary search trees
Binary search tree implementation
Binary search tree operations
Finding the minimum and maximum nodes
Inserting nodes
Searching the tree
Tree traversal
Depth-first traversal
In-order traversal and infix notation
Pre-order traversal and prefix notation
Post-order traversal and postfix notation.
Breadth-first traversal
Benefits of a binary search tree
Expression trees
Parsing a reverse Polish expression
Balancing trees
Heaps
Chapter 7: Hashing and Symbol Tables
Hashing
Perfect hashing functions
Hash table
Putting elements
Getting elements
Testing the hash table
Using [] with the hash table
Non-string keys
Growing a hash table
Open addressing
Chaining
Symbol tables
Chapter 8: Graphs and Other Algorithms
Graphs
Directed and undirected graphs
Weighted graphs
Graph representation
Adjacency list
Adjacency matrix
Graph traversal
Breadth-first search
Depth-first search
Other useful graph methods.
Priority queues and heaps
Inserting
Pop
Testing the heap
Selection algorithms
Chapter 9: Searching
Linear Search
Unordered linear search
Ordered linear search
Binary search
Interpolation search
Choosing a search algorithm
Chapter 10: Sorting
Sorting algorithms
Bubble sort
Insertion sort
Selection sort
Quick sort
List partitioning
Pivot selection
Implementation
Heap sort
Chapter 11: Selection Algorithms
Selection by sorting
Randomized selection
Quick select
Partition step
Deterministic selection
Median of medians
Partitioning step
Chapter 12: Design Techniques and Strategies
Classification of algorithms
Classification by implementation
Recursion
Logical
Serial or parallel
Deterministic versus nondeterministic algorithms
Classification by complexity
Complexity curves
Classification by design
Divide and conquer
Dynamic programming
Greedy algorithms
Technical implementation
Memoization
Tabulation
The Fibonacci series
The Memoization technique
The tabulation technique
Divide
Conquer
Merge
Merge sort
Coin-counting problem
Dijkstra's shortest path algorithm
Complexity classes
P versus NP
NP-Hard
NP-Complete
Chapter 13: Implementations, Applications, and Tools
Tools of the trade
Data preprocessing
Why process raw data?
Missing data
Feature scaling
Min-max scalar
Standard scalar
Binarizing data
Machine learning
Types of machine learning
Hello classifier
A supervised learning example
Gathering data
Bag of words
Prediction
An unsupervised learning example
K-means algorithm
Prediction.
Data visualization
Bar chart
Multiple bar charts
Box plot
Pie chart
Bubble chart
Index.
Notes:
Includes index.
Description based on online resource; title from PDF title page (ebrary, viewed June 15, 2017).
OCLC:
990784724

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.

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Library Catalog Using Articles+ Library Account