Навыки, которые вы получите:
Algorithms
Randomized algorithm
Divide and conquer algorithms
Sorting algorithm
The primary topics in this part of the specialization are: asymptotic («Big-oh») notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts).
The Program
Introduction; «big-oh» notation and asymptotic analysis
- Why Study Algorithms?
- Integer Multiplication.
- Karatsuba Multiplication.
- About the Course.
- Merge Sort: Motivation and Example.
- Merge Sort: Pseudocode.
- Merge Sort: Analysis.
- Guiding Principles for Analysis of Algorithms.
- The Gist.
- Big-Oh Notation.
- Basic Examples.
- Big Omega and Theta.
Divide-and-conquer basics; the master method for analyzing divide and conquer algorithms
- O (n log n) Algorithm for Counting Inversions I.
- O (n log n) Algorithm for Counting Inversions II.
- Strassen’s Subcubic Matrix Multiplication Algorithm.
- O (n log n) Algorithm for Closest Pair I.
- O (n log n) Algorithm for Closest Pair II.
The QuickSort algorithm and its analysis; probability review
- Quicksort: Overview.
- Partitioning Around a Pivot.
- Correctness of Quicksort.
- Choosing a Good Pivot.
- Analysis I: A Decomposition Principle.
- Analysis II: The Key Insight.
- Analysis III: Final Calculations.
- Probability Review I.
- Probability Review II.
Linear-time selection; graphs, cuts, and the contraction algorithm
- Randomized Selection. Algorithm.
- Randomized Selection. Analysis.
- Deterministic Selection. Algorithm.
- Deterministic Selection. Analysis I.
- Deterministic Selection. Analysis II.
- Omega (n log n) Lower Bound for Comparison. Based Sorting.
- Graphs and Minimum Cuts.
- Graph Representations.
- Random Contraction Algorithm.
- Analysis of Contraction Algorithm.
- Counting Minimum Cuts.