Skip to content

The repository contains the topics learned while going through the course of Part 3 under the Algorithmic Specialisation - Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming. I have implemented various fundamental algorithms under this course in this repo.

Notifications You must be signed in to change notification settings

ss-shrishi2000/Greedy_Algorithms_Minimum_Spanning_Trees_And_Dynamic_Programming

Repository files navigation

Part 3 of the Algorithms Specialization: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming!

TWO MOTIVATING APPLICATIONS: We begin with a fairly non-technical discussion of two motivating applications --- distributed shortest-path routing in the Internet, and sequence alignment --- to build excitement for the tools that we will acquire later in the course (and also in Part 4 of the specialization).

INTRODUCTION TO GREEDY ALGORITHMS: The focus of this week and the next is the greedy algorithm design paradigm. The two non-technical videos discuss the pros and cons of this paradigm and describe a cool application to the optimal management of the contents of a cache.

A SCHEDULING APPLICATION: Scheduling problems come up all the time (e.g., how should a shared resource be allocated?) and greedy algorithms are often useful for them. A specific success story --- minimizing the weighted sum of completion times of a bunch of tasks --- in detail. The correctness proof furnishes a particularly clean example of an "exchange argument."

PRIM'S MST ALGORITHM: The minimum spanning tree (MST) problem, in addition to enjoying several applications, is a uniquely great problem for the study of greedy algorithms. Unusually, several different greedy algorithms always compute an optimal solution. We begin here with the Dijkstra-esque Prim's algorithm. The correctness proof requires understanding the subtly beautiful structure of cuts in graphs, while its blazingly fast implementation relies on a deft application of the heap data structure.

About

The repository contains the topics learned while going through the course of Part 3 under the Algorithmic Specialisation - Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming. I have implemented various fundamental algorithms under this course in this repo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages