Basics of Algorithms Through Searching and Sorting-Course Overview
Earn Academic Credit for your Work!
Course Support
Important Prerequisites
Logistics: Textbook and Readings
What is an Algorithm?
()
CLRS Chapter 1
Important Specialization Information
Basics of Algorithms Through Searching and Sorting-Overview of Module 1
Overview of Module 1
Basics of Algorithms Through Searching and Sorting-Introduction: Insertion Sort
An Introduction Through the Insertion Sort Algorithm
()
CLRS Chapter 2
Basics of Algorithms Through Searching and Sorting-Asymptotic Notation: Big-O, Omega and Theta Notation
Time and Space Complexity
()
Asymptotic Notation
()
CLRS Chapter 3
Basics of Algorithms Through Searching and Sorting-Binary Search: Proving Correctness and Running Time Analysis
Binary Search
()
Binary Search Lecture Slides
Jupyter Notebook on Binary Search
Basics of Algorithms Through Searching and Sorting-Mergesort: Correctness and Running Time
Merge Sort Algorithm, Analysis and Proof of Correctness
()
Notes on MergeSort
Basics of Algorithms Through Searching and Sorting-OPTIONAL: Extra Video Lesson
Pitfalls and Logarithms
()
Heaps and Hashtable Data Structures-Overview of Module 2
Overview of Module 2
Heaps and Hashtable Data Structures-Data Structures: What? and Why?
A Simple Data Structure: The Dynamic Array
()
CLRS Chapter 10, 10.1 + Jupyter Notebook
Heaps and Hashtable Data Structures-Heap Data Structure
Heap, Min/Max-Heaps and Properties of Heaps
()
CLRS Chapter 6.1 and 6.2
Heaps and Hashtable Data Structures-Heap Primitives: Bubble Up and Bubble Down
Heap Primitives: Bubble Up/Bubble Down
()
CLRS Chapter 6.3
Priority Queues, Heapify, and Heapsort
()
CLRS Chapter 6.4 and 6.5
Heaps and Hashtable Data Structures-Hashtables - Introduction
Hashtables - Introduction
()
CLRS Chapter 11.1 and 11.2
Randomization: Quicksort, Quickselect, and Hashtables-Overview of Module 3
Overview of Module 3
Randomization: Quicksort, Quickselect, and Hashtables-Introduction to Randomization in Algorithms and Data Structures
Introduction to Randomization + Average Case Analysis + Recurrences
()
Randomization: Quicksort, Quickselect, and Hashtables-Partition and Quicksort
Partition and Quicksort Algorithm
()
CLRS Chapter 7.1
Randomization: Quicksort, Quickselect, and Hashtables-Designing Partition Scheme and Correctness
Detailed Design of Partitioning Schemes
()
CLRS Chapter 7.1
Randomization: Quicksort, Quickselect, and Hashtables-Analysis of Quicksort Algorithm
Analysis of Quicksort Algorithm
()
CLRS Chapter 7.2 - 7.4
Randomization: Quicksort, Quickselect, and Hashtables-Quickselect Algorithm
Quickselect Algorithm and its Applications
()
CLRS Chapter 9.1, 9.2
Randomization: Quicksort, Quickselect, and Hashtables-Hash Functions and Universal Hashing
Selecting Hash Functions
()
Universal Hash Functions and Analysis
()
CLRS Chapter 11.3
Applications of Hashtables-Overview of Module 4
Overview of Module 4
Applications of Hashtables-Open Address Hashtables
Open Address Hashing
()
CLRS 11.4
Applications of Hashtables-Perfect and Cuckoo Hashing
Perfect hashing and Cuckoo hashing
()
CLRS Chapter 11.5 (Perfect Hashing) and Slides with Scribbles
Applications of Hashtables-Bloom Filters
Bloom Filters and Analysis
()
Bloom Filter: Slides
Applications of Hashtables-Count-Min Sketches
Count-Min Sketching Using Hashing
()
Count-Min Sketches Slides
Applications of Hashtables-String Matching Using Hash Functions
String Matching Using Hashing
()
Slides with Scribbles