Data Structures and Algorithms for Data Science with Python
Master fundamental data structures and algorithms in Python to optimize data analysis workflows and solve complex data science problems.
...
Share
Introduction to Data Structures and Algorithms
Unit 1: Fundamentals of Data Structures and Algorithms
What are Data Structures?
What are Algorithms?
Why D.S. & Algos Matter
Python Review: Lists
Python Review: Dictionaries
Unit 2: Big O Notation
What is Big O Notation?
O(1) - Constant Time
O(n) - Linear Time
O(log n) - Logarithmic Time
O(n log n) Time
O(n^2) - Quadratic Time
Unit 3: Trade-offs
Time vs. Space
Arrays vs. Linked Lists
Arrays and Linked Lists
Unit 1: Arrays in Python
Arrays: The Basics
Array Operations
Array Time Complexity
Space Complexity
Dynamic Arrays
Unit 2: Linked Lists in Python
Linked Lists: Intro
Singly Linked Lists
Doubly Linked Lists
LL Time Complexity
LL Space Complexity
Unit 3: Arrays vs. Linked Lists
Arrays vs. Linked List
Real World: Arrays
Real World: LL
Data Analysis with Arrays
Data Analysis with LL
Stacks and Queues
Unit 1: Introduction to Stacks
What are Stacks?
Stack Implementation
Stack Underflow/Overflow
Stack Time Complexity
Stack Use Cases
Unit 2: Introduction to Queues
What are Queues?
Queue Implementation
Queue Time Complexity
Queue Implementation II
Queue Use Cases
Unit 3: Advanced Stack and Queue Applications
Expression Evaluation
Task Scheduling
Stack vs Queue
Real-World Examples
Wrap Up
Hash Tables
Unit 1: Understanding Hash Tables
What are Hash Tables?
Hash Functions Explained
Collision Resolution
Chaining Explained
Open Addressing
Unit 2: Hash Tables in Python
Dicts as Hash Tables
Basic Operations
Custom Hash Functions
Collision Handling in Python
Hash Table from Scratch
Unit 3: Complexity and Applications
Time Complexity
Space Complexity
Frequency Counting
Implementing Caching
Real-World Applications
Sorting Algorithms
Unit 1: Introduction to Sorting Algorithms
Why Sorting Matters?
Sorting Algorithm Overview
Big O for Sorting
Unit 2: Basic Sorting Algorithms
Selection Sort
Insertion Sort
Bubble Sort
Unit 3: Advanced Sorting Algorithms
Merge Sort: Divide
Merge Sort: Conquer
Merge Sort in Python
Quicksort: Partition
Quicksort in Python
Unit 4: Comparing and Applying Sorting Algorithms
Sort Algorithm Comparison
Sorting Real-World Data
Python's Sorting Functions
Sorting Algorithm Tradeoffs
Searching Algorithms
Unit 1: Linear Search
Intro to Searching
Linear Search Explained
Linear Search in Python
Linear Search: Time
Linear Search: Space
Unit 2: Binary Search
Binary Search Intro
Binary Search Explained
Binary Search in Python
Binary Search: Time
Binary Search: Space
Unit 3: Advanced Searching
Binary Search Variations
When to Use Which?
Searching Sorted Tables
Searching Dictionaries
Real-World Examples
Tree-Based Data Structures
Unit 1: Introduction to Trees
What are Trees?
Types of Trees
Binary Tree Basics
Why Use Trees?
Unit 2: Binary Search Trees (BSTs)
BST Intro
BST Search
BST Insertion
BST Deletion
BST Traversal
Unit 3: BST Implementation and Analysis
BST in Python
BST Time Complexity
BST Space Complexity
Balancing BSTs
BST Applications
Graph Data Structures and Algorithms
Unit 1: Introduction to Graphs
What are Graphs?
Directed vs. Undirected
Weighted Graphs
Graph Terminology
Graphs in Data Science
Unit 2: Graph Representations
Adjacency Matrix
Adjacency List
Matrix vs. List
Python Graph Library
Unit 3: Graph Traversal Algorithms
Breadth-First Search
BFS in Python
Depth-First Search
DFS in Python
BFS vs. DFS
Unit 4: Applications and Relevance
Social Network Analysis
Recommendation Systems