Categorygithub.com/nurzhannogerbek/stanford-university-algorithms-specialization
repository
0.0.0-20241202202631-cbe6e8284390
Repository: https://github.com/nurzhannogerbek/stanford-university-algorithms-specialization.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

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.