舉報

會員
Python Data Structures and Algorithms
最新章節:
Summary
Datastructuresallowyoutoorganizedatainaparticularwayefficiently.Theyarecriticaltoanyproblem,provideacompletesolution,andactlikereusablecode.Inthisbook,youwilllearntheessentialPythondatastructuresandthemostcommonalgorithms.Withthiseasy-to-readbook,youwillbeabletounderstandthepoweroflinkedlists,doublelinkedlists,andcircularlinkedlists.Youwillbeabletocreatecomplexdatastructuressuchasgraphs,stacksandqueues.Wewillexploretheapplicationofbinarysearchesandbinarysearchtrees.Youwilllearnthecommontechniquesandstructuresusedintaskssuchaspreprocessing,modeling,andtransformingdata.Wewillalsodiscusshowtoorganizeyourcodeinamanageable,consistent,andextendableway.Thebookwillexploreindetailsortingalgorithmssuchasbubblesort,selectionsort,insertionsort,andmergesort.
- Summary 更新時間:2021-07-09 19:45:45
- Bubble chart
- Pie chart
- Box plot
- Multiple bar charts
- Bar chart
- Data visualization
- Prediction
- K-means algorithm
- An unsupervised learning example
- Prediction
- Bag of words
- Gathering data
- A supervised learning example
- Hello classifier
- Types of machine learning
- Machine learning
- Binarizing data
- Standard scalar
- Min-max scalar
- Feature scaling
- Missing data
- Why process raw data?
- Data preprocessing
- Tools of the trade
- Implementations Applications and Tools
- Summary
- NP-Complete
- NP-Hard
- P versus NP
- Complexity classes
- Dijkstra's shortest path algorithm
- Coin-counting problem
- Greedy algorithms
- Merge sort
- Merge
- Conquer
- Divide
- Divide and conquer
- The tabulation technique
- The Memoization technique
- The Fibonacci series
- Tabulation
- Memoization
- Dynamic programming
- Technical implementation
- Greedy algorithms
- Dynamic programming
- Divide and conquer
- Classification by design
- Complexity curves
- Classification by complexity
- Deterministic versus nondeterministic algorithms
- Serial or parallel
- Logical
- Recursion
- Classification by implementation
- Classification of algorithms
- Design Techniques and Strategies
- Summary
- Partitioning step
- Median of medians
- Pivot selection
- Deterministic selection
- Partition step
- Quick select
- Randomized selection
- Selection by sorting
- Selection Algorithms
- Summary
- Heap sort
- Implementation
- Pivot selection
- List partitioning
- Quick sort
- Selection sort
- Insertion sort
- Bubble sort
- Sorting algorithms
- Sorting
- Summary
- Choosing a search algorithm
- Interpolation search
- Binary search
- Ordered linear search
- Unordered linear search
- Linear Search
- Searching
- Summary
- Selection algorithms
- Testing the heap
- Pop
- Inserting
- Priority queues and heaps
- Other useful graph methods
- Depth-first search
- Breadth-first search
- Graph traversal
- Adjacency matrix
- Adjacency list
- Graph representation
- Weighted graphs
- Directed and undirected graphs
- Graphs
- Graphs and Other Algorithms
- Summary
- Symbol tables
- Chaining
- Open addressing
- Growing a hash table
- Non-string keys
- Using [] with the hash table
- Testing the hash table
- Getting elements
- Putting elements
- Hash table
- Perfect hashing functions
- Hashing
- Hashing and Symbol Tables
- Summary
- Heaps
- Balancing trees
- Parsing a reverse Polish expression
- Expression trees
- Benefits of a binary search tree
- Breadth-first traversal
- Post-order traversal and postfix notation.
- Pre-order traversal and prefix notation
- In-order traversal and infix notation
- Depth-first traversal
- Tree traversal
- Searching the tree
- Deleting nodes
- Inserting nodes
- Finding the minimum and maximum nodes
- Binary search tree operations
- Binary search tree implementation
- Binary search trees
- Binary trees
- Tree nodes
- Terminology
- Trees
- Summary
- Media player queue
- Application of queues
- Dequeue operation
- Enqueue operation
- Queue class
- Node-based queue
- Dequeue operation
- Enqueue operation
- Stack-based queue
- Dequeue operation
- Enqueue operation
- List-based queue
- Queues
- Bracket-matching application
- Peek
- Pop operation
- Push operation
- Stack implementation
- Stacks
- Stacks and Queues
- Summary
- Iterating through a circular list
- Deleting an element
- Appending elements
- Circular lists
- List search
- Delete operation
- Append operation
- Doubly linked list
- A doubly linked list node
- Doubly linked lists
- Clearing a list
- List search
- Deleting nodes
- Improving list traversal
- Getting the size of the list
- A faster append operation
- Append operation
- Singly linked list class
- Singly linked lists
- Other node types
- Node
- Finding endpoints
- Nodes
- Pointer structures
- Arrays
- Lists and Pointer Structures
- Summary
- Amortized analysis
- Theta notation (?)
- Omega notation (?)
- Composing complexity classes
- Big O notation
- Asymptotic analysis
- Runtime analysis
- Can we do better? A recursive approach
- Divide and conquer - long multiplication
- Backtracking
- Recursion and backtracking
- Algorithm design paradigms
- Principles of Algorithm Design
- Summary
- Arrays
- Named tuples
- defaultdict
- Ordered dictionaries
- Counter objects
- ChainMaps
- Deques
- Collections
- Modules for data structures and algorithms
- Immutable sets
- Sets
- Dictionaries for text analysis
- Sorting dictionaries
- Dictionaries
- Tuples
- Sequences
- Representation error
- Numeric Types
- None type
- Built-in data types
- Membership identity and logical operations
- Comparison and Arithmetic operators
- Boolean operations
- Operations and expressions
- Python Data Types and Structures
- Summary
- Data encapsulation and properties
- Inheritance
- Special methods
- Classes and object programming
- Generators and co-routines
- Recursive functions
- Higher order functions
- Functions as first class objects
- Lists
- Strings
- Overview of data types and objects
- Flow control and iteration
- Variable scope
- Variables and expressions
- The Python environment
- Python for data
- Understanding data structures and algorithms
- Python Objects Types and Expressions
- Questions
- Piracy
- Errata
- Downloading the example code
- Customer support
- Reader feedback
- Conventions
- Who this book is for
- What you need for this book
- What this book covers
- Preface
- Customer Feedback
- www.PacktPub.com
- About the Reviewer
- About the Author
- Credits
- Title Page
- coverpage
- coverpage
- Title Page
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Errata
- Piracy
- Questions
- 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
- 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
- Summary
- 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
- Summary
- Lists and Pointer Structures
- Arrays
- 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
- Append operation
- Delete operation
- List search
- Circular lists
- Appending elements
- Deleting an element
- Iterating through a circular list
- Summary
- 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
- Enqueue operation
- Dequeue operation
- Node-based queue
- Queue class
- Enqueue operation
- Dequeue operation
- Application of queues
- Media player queue
- Summary
- 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
- Deleting 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
- Summary
- 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
- Summary
- 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
- Summary
- Searching
- Linear Search
- Unordered linear search
- Ordered linear search
- Binary search
- Interpolation search
- Choosing a search algorithm
- Summary
- Sorting
- Sorting algorithms
- Bubble sort
- Insertion sort
- Selection sort
- Quick sort
- List partitioning
- Pivot selection
- Implementation
- Heap sort
- Summary
- Selection Algorithms
- Selection by sorting
- Randomized selection
- Quick select
- Partition step
- Deterministic selection
- Pivot selection
- Median of medians
- Partitioning step
- Summary
- 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
- Dynamic programming
- Memoization
- Tabulation
- The Fibonacci series
- The Memoization technique
- The tabulation technique
- Divide and conquer
- Divide
- Conquer
- Merge
- Merge sort
- Greedy algorithms
- Coin-counting problem
- Dijkstra's shortest path algorithm
- Complexity classes
- P versus NP
- NP-Hard
- NP-Complete
- Summary
- 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
- Summary 更新時間:2021-07-09 19:45:45