Algorithms, Part II

  • 4.9
Approx. 63 hours to complete

Course Summary

This course is the second part of a two-part sequence, focusing on graph and string-processing algorithms.

Key Learning Points

  • Learn advanced algorithms and data structures for processing graphs and strings
  • Understand the theory behind graph and string algorithms
  • Gain practical experience through programming assignments and quizzes

Related Topics for further study


Learning Outcomes

  • Ability to design and implement advanced graph algorithms
  • Understanding of how to process and manipulate strings efficiently
  • Knowledge of the theory behind advanced algorithms and data structures

Prerequisites or good to have knowledge before taking this course

  • Completion of Algorithms Part I course
  • Proficiency in Java programming

Course Difficulty Level

Advanced

Course Format

  • Online
  • Self-paced

Similar Courses

  • Algorithms, Part I
  • Advanced Algorithms and Complexity

Related Education Paths


Related Books

Description

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

All the features of this course are available for free. It does not offer a certificate upon completion.

Outline

  • Introduction
  • Course Introduction
  • Welcome to Algorithms, Part II
  • Undirected Graphs
  • Introduction to Graphs
  • Graph API
  • Depth-First Search
  • Breadth-First Search
  • Connected Components
  • Graph Challenges
  • Overview
  • Interview Questions: Undirected Graphs (ungraded)
  • Directed Graphs
  • Introduction to Digraphs
  • Digraph API
  • Digraph Search
  • Topological Sort
  • Strong Components
  • Interview Questions: Directed Graphs (ungraded)
  • Minimum Spanning Trees
  • Introduction to MSTs
  • Greedy Algorithm
  • Edge-Weighted Graph API
  • Kruskal's Algorithm
  • Prim's Algorithm
  • MST Context
  • Overview
  • Interview Questions: Minimum Spanning Trees (ungraded)
  • Shortest Paths
  • Shortest Paths APIs
  • Shortest Path Properties
  • Dijkstra's Algorithm
  • Edge-Weighted DAGs
  • Negative Weights
  • Interview Questions: Shortest Paths (ungraded)
  • Maximum Flow and Minimum Cut
  • Introduction to Maxflow
  • Ford–Fulkerson Algorithm
  • Maxflow–Mincut Theorem
  • Running Time Analysis
  • Java Implementation
  • Maxflow Applications
  • Interview Questions: Maximum Flow (ungraded)
  • Radix Sorts
  • Strings in Java
  • Key-Indexed Counting
  • LSD Radix Sort
  • MSD Radix Sort
  • 3-way Radix Quicksort
  • Suffix Arrays
  • Interview Questions: Radix Sorts (ungraded)
  • Tries
  • R-way Tries
  • Ternary Search Tries
  • Character-Based Operations
  • Overview
  • Interview Questions: Tries (ungraded)
  • Substring Search
  • Introduction to Substring Search
  • Brute-Force Substring Search
  • Knuth–Morris–Pratt
  • Boyer–Moore
  • Rabin–Karp
  • Lecture Slides
  • Interview Questions: Substring Search (ungraded)
  • Regular Expressions
  • Regular Expressions
  • REs and NFAs
  • NFA Simulation
  • NFA Construction
  • Regular Expression Applications
  • Overview
  • Lecture Slides
  • Interview Questions: Regular Expressions (ungraded)
  • Data Compression
  • Introduction to Data Compression
  • Run-Length Coding
  • Huffman Compression
  • LZW Compression
  • Lecture Slides
  • Interview Questions: Data Compression (ungraded)
  • Reductions
  • Introduction to Reductions
  • Designing Algorithms
  • Establishing Lower Bounds
  • Classifying Problems
  • Overview
  • Lecture Slides
  • Interview Questions: Reductions (ungraded)
  • Linear Programming (optional)
  • Brewer's Problem
  • Simplex Algorithm
  • Simplex Implementations
  • Linear Programming Reductions
  • Lecture Slides
  • Interview Questions: Linear Programming (ungraded)
  • Intractability
  • Introduction to Intractability
  • Search Problems
  • P vs. NP
  • Classifying Problems
  • NP-Completeness
  • Coping with Intractability
  • Lecture Slides
  • Interview Questions: Intractability (ungraded)

Summary of User Reviews

This course on algorithms part 2 has received positive reviews from learners. Many users have praised the course for its comprehensive coverage of advanced algorithms and their applications.

Pros from User Reviews

  • In-depth coverage of advanced algorithms
  • Challenging and engaging assignments
  • Well-structured course material
  • Expert instructors with industry experience

Cons from User Reviews

  • Some learners found the course difficult to follow
  • The pace of the course may be too fast for beginners
  • Some learners felt that the course lacked practical examples
  • The course may require significant time commitment
English
Available now
Approx. 63 hours to complete
Robert Sedgewick, Kevin Wayne
Princeton University
Coursera

Instructor

Robert Sedgewick

  • 4.9 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses