Skip to content

Solutions for problems sets and algorithms taught in Stanford's Algorithms Specialization at Coursera.

License

Notifications You must be signed in to change notification settings

manuindersekhon/algorithms-specialization-stanford

Repository files navigation

Stanford's Algorithms Specialization

This repository contains the solutions for problems sets and algorithms taught in Stanford's Algorithms Specialization at Coursera.

Most of the problems sets are written in Rust (as a part of learning Rust itself) and some of them are written in C++ and Dart.

Topics and Design paradigms covered are:

  1. Divide and Conquer, Sorting and Searching, and Randomized Algorithms
  2. Graph Search, Shortest Paths, and Data Structures
  3. Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
  4. Shortest Paths Revisited, NP Complete Problems and What to Do about It

Specific details are covered in each subfolder.

Running the files

Problem sets are tested on below versions at the time of writing.

Rust: rustc 1.60.0 (7737e0b5c 2022-04-04)

Dart: 2.17.3 (stable)

C++: Apple clang version 13.1.6 (clang-1316.0.21.2.5)

Files can be compiled and run by following the below steps.

# Rust
$ rustc -C debuginfo=0 -C opt-level=3 filename.rs
$ ./filename

# Dart single file.
$ dart --enable-asserts filename.dart

# Dart project
$ dart run

# C++
$ clang++ -Wall -Werror -Wno-unused-parameter -std=c++17 filename.cpp -o filename
$ ./filename

I will try to cover optional problems and later more techniques like linear programming, online algorithms, etc.


Manuinder Sekhon