Skip to content

Problem Set and Programming Assignment Solutions to Stanford University's Algorithms Specialization.

License

Notifications You must be signed in to change notification settings

nurzhannogerbek/stanford-university-algorithms-specialization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stanford University Algorithms Specialization

This repository contains my solutions to the problem sets and programming assignments in Python and Golang for Stanford University's Algorithms Specialization. Also, the repository includes implementations of algorithms discussed during the courses.

Specialization Structure

The specialization consists of four courses:

  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 Them

Quick Access

Course 1: Divide and Conquer, Sorting and Searching, and Randomized Algorithms

Module 1:

Module 2:

Module 3:

Module 4:

Course 2: Graph Search, Shortest Paths, and Data Structures

Module 1:

Module 2:

Module 3:

Module 4:

Course 3: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

Module 1:

Module 2:

Module 3:

Module 4:

Course 4: Shortest Paths Revisited, NP-Complete Problems and What To Do About Them

Module 1:

Module 2:

Module 3:

Module 4:

Project Structure

stanford-university-algorithms-specialization/
├── course_1/
│   ├── module_1/
│   │   ├── problem_set_1/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_1/
│   │   │   ├── karatsuba.go
│   │   │   ├── karatsuba.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── mergesort.go
│   │   │   ├── mergesort.py
│   ├── module_2/
│   │   ├── problem_set_2/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_2/
│   │   │   ├── IntegerArray.txt
│   │   │   ├── inversion_counter.go
│   │   │   ├── inversion_counter.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── closest_pair.go
│   │   │   ├── closest_pair.py
│   │   │   ├── strassen_matrix_multiplier.go
│   │   │   ├── strassen_matrix_multiplier.py
│   ├── module_3/
│   │   ├── problem_set_3/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_3/
│   │   │   ├── QuickSort.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── quick_sort.go
│   │   │   ├── quick_sort.py
│   ├── module_4/
│   │   ├── problem_set_4/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_4/
│   │   │   ├── kargerMinCut.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── final_exam/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── examples/
│   │   │   ├── deterministic_selection.go
│   │   │   ├── deterministic_selection.py
│   │   │   ├── randomized_contraction.go
│   │   │   ├── randomized_contraction.py
│   │   │   ├── randomized_selection.go
│   │   │   ├── randomized_selection.py
├── course_2/
│   ├── module_1/
│   │   ├── problem_set_1/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_1/
│   │   │   ├── scc.go
│   │   │   ├── scc.py
│   │   │   ├── SCC.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── bfs.go
│   │   │   ├── bfs.py
│   │   │   ├── dfs.go
│   │   │   ├── dfs.py
│   │   │   ├── topological_sort.go
│   │   │   ├── topological_sort.py
│   ├── module_2/
│   │   ├── problem_set_2/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_2/
│   │   │   ├── dijkstraData.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── dijkstra.go
│   │   │   ├── dijkstra.py
│   ├── module_3/
│   │   ├── problem_set_3/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_3/
│   │   │   ├── Median.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── binary_search_tree.go
│   │   │   ├── binary_search_tree.py
│   │   │   ├── red_black_tree.go
│   │   │   ├── red_black_tree.py
│   ├── module_4/
│   │   ├── problem_set_4/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_4/
│   │   │   ├── 2sum.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── final_exam/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── examples/
│   │   │   ├── bloom_filters.go
│   │   │   ├── bloom_filters.py
│   │   │   ├── universal_hashing.go
│   │   │   ├── universal_hashing.py
├── course_3/
│   ├── module_1/
│   │   ├── problem_set_1/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_1/
│   │   │   ├── solution_1.go
│   │   │   ├── solution_1.py
│   │   │   ├── solution_2.go
│   │   │   ├── solution_2.py
│   │   │   ├── solution_3.go
│   │   │   ├── solution_3.py
│   │   │   ├── edges.txt
│   │   │   ├── jobs.txt
│   │   │   ├── tasks.png
│   │   ├── examples/
│   │   │   ├── job_scheduler.go
│   │   │   ├── job_scheduler.py
│   │   │   ├── prim_mst.go
│   │   │   ├── prim_mst.py
│   ├── module_2/
│   │   ├── problem_set_2/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_2/
│   │   │   ├── clustering1.txt
│   │   │   ├── clustering_big.go
│   │   │   ├── clustering_big.py
│   │   │   ├── clustering_big.txt
│   │   │   ├── solution_1.go
│   │   │   ├── solution_1.py
│   │   │   ├── solution_2.go
│   │   │   ├── solution_1.py
│   │   │   ├── tasks.png
│   │   ├── examples/
│   │   │   ├── clustering.go
│   │   │   ├── clustering.py
│   │   │   ├── kruskal_mst.go
│   │   │   ├── kruskal_mst.py
│   │   │   ├── union_find.py
│   │   │   ├── union_find.py
│   ├── module_3/
│   │   ├── problem_set_3/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_3/
│   │   │   ├── huffman.txt
│   │   │   ├── mwis.txt
│   │   │   ├── solution_1&2.go
│   │   │   ├── solution_1&2.py
│   │   │   ├── solution_3.go
│   │   │   ├── solution_3.py
│   │   │   ├── tasks.png
│   │   ├── examples/
│   │   │   ├── huffman.go
│   │   │   ├── huffman.py
│   │   │   ├── wis.go
│   │   │   ├── wis.py
│   ├── module_4/
│   │   ├── problem_set_4/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_4/
│   │   │   ├── knapsack1.txt
│   │   │   ├── knapsack_big.txt
│   │   │   ├── solution_1.go
│   │   │   ├── solution_1.py
│   │   │   ├── solution_2.go
│   │   │   ├── solution_2.py
│   │   │   ├── tasks.png
│   │   ├── final_exam/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── examples/
│   │   │   ├── knapsack.go
│   │   │   ├── knapsack.py
│   │   │   ├── optimal_binary_search_tree.go
│   │   │   ├── optimal_binary_search_tree.py
├── course_4/
│   ├── module_1/
│   │   ├── problem_set_1/
│   │   │   ├── questions_answers.png
│   │   ├── programming_assignment_1/
│   │   │   ├── g1.txt
│   │   │   ├── g2.txt
│   │   │   ├── g3.txt
│   │   │   ├── large.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── bellman_ford.go
│   │   │   ├── bellman_ford.py
│   │   │   ├── floyd_warshall.go
│   │   │   ├── floyd_warshall.py
│   │   │   ├── johnson.go
│   │   │   ├── johnson.py
│   ├── module_2/
│   │   ├── problem_set_2/
│   │   │   ├── questions.png
│   │   │   ├── answers.png
│   │   ├── programming_assignment_2/
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   │   ├── tsp.txt
│   │   ├── examples/
│   │   │   ├── traveling_salesman.go
│   │   │   ├── traveling_salesman.py
│   │   │   ├── vertex_cover.go
│   │   │   ├── vertex_cover.py
│   ├── module_3/
│   │   ├── problem_set_3/
│   │   │   ├── questions.png
│   │   │   ├── answers.png
│   │   ├── programming_assignment_3/
│   │   │   ├── nn.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── examples/
│   │   │   ├── greedy_knapsack_heuristic.go
│   │   │   ├── greedy_knapsack_heuristic.py
│   ├── module_4/
│   │   ├── problem_set_4/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── programming_assignment_4/
│   │   │   ├── 2sat1.txt
│   │   │   ├── 2sat2.txt
│   │   │   ├── 2sat3.txt
│   │   │   ├── 2sat4.txt
│   │   │   ├── 2sat5.txt
│   │   │   ├── 2sat6.txt
│   │   │   ├── solution.go
│   │   │   ├── solution.py
│   │   │   ├── task.png
│   │   ├── final_exam/
│   │   │   ├── answers.png
│   │   │   ├── questions.png
│   │   ├── examples/
│   │   │   ├── maximum_cut.go
│   │   │   ├── maximum_cut.py
│   │   │   ├── papadimitriou.go
│   │   │   ├── papadimitriou.py
│   │   │   ├── two_sat.go
│   │   │   ├── two_sat.py
├── LICENSE
└── README.md

License

This project is licensed under the MIT License.
Feel free to use, modify, and distribute the code as described in the license.

About

Problem Set and Programming Assignment Solutions to Stanford University's Algorithms Specialization.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published