Skip to content

beauvilerobed/data-structures-and-algorithms

Repository files navigation

Topics from Algorithms and Data Stuctures courses.

Algorithmic Toolbox part1 (click to expand list)
  • Assignment 1: Max Pairwise Product
  • Assignment 2: Fibonacci Number
  • Assignment 3: Last Digit of a Fibonacci Number
  • Assignment 4: Greatest Common Divisor
  • Assignment 5: Fibonacci Number Again
  • Assignment 6: Money Change
  • Assignment 7: Car Fueling
  • Assignment 8: Collecting Signatures (Covering Segments by Points)
Algorithmic Toolbox part2
  • Assignment 9: Maximum Salary (Largest Number)
  • Assignment 10: Binary Search
  • Assignment 11: Majority Element
  • Assignment 12: Improving QuickSort
  • Assignment 13: Money Change Again
  • Assignment 14: Primitive Calculator
  • Assignment 15: Longest Common Subsequence of Two Sequence
  • Assignment 16: Partitioning Souvenirs
  • Assignment 17: Max Value of Arithmetic Expression
Data Structures
  • Assignment 1: Check brackets in the code
  • Assignment 2: Stack with maximum
  • Assignment 3: Build Heap
  • Assignment 4: Parallel Processing
  • Assignment 5: Phone Book
  • Assignment 6: Chaining Simulation
  • Assignment 7: Tree Orders
  • Assignment 8: Is it a Binary Search Tree?
  • Assignment 9: Is it a Binary Search Tree? Hard version
Algorithms on Graphs
  • Assignment 1: Reachability
  • Assignment 2: Acyclicity
  • Assignment 3: Topological Sort
  • Assignment 4: BFS (min number of flight segments)
  • Assignment 5: Dijkstra (min cost of a flight)
  • Assignment 6: Negative Cycle (detecting anomolies in currency exchange rates)
  • Assignment 7: Connecting Points
Algorithms on Strings
  • Assignment 1: Construct a Trie from a Collection of Patterns
  • Assignment 2: Implement TrieMatching
  • Assignment 3: Borrows-Wheeler Transform
  • Assignment 4: Reconstruct String from its Burrows-Wheeler Transform
  • Assignment 5: Suffix Tree
  • Assignment 6: Find all Occurrences of Pattern in String
  • Assignment 7: Construct Suffix Array of a Long String
Divide & Conquer, Sorting and Searching, and Randomized Algorithms
  • Assignment 1: Integer Multiplication
  • Assignment 2: Inversions
  • Assignment 3: Quicksort
  • Assignment 4: Minimum Cut
Graph Search and Shortest Path
  • Assignment 1: Strongly Connected Components
  • Assignment 2: Dijkstra's Shortest Path
  • Assignment 3: Median Maintenance
  • Assignment 4: Two Sum
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
  • Assignment 1: Scheduling and Prim's MST Algorithm
  • Assignment 2: K-Clustering
  • Assignment 3: Huffman Codes and Max Weight Independent Sets
  • Assignment 4: Knapsack
Shortest Paths Revisited, NP-Complete Problems
  • Assignment 1: All-pairs shortest paths
  • Assignment 2: Traveling salesperson problem
  • Assignment 3: Traveling salesperson problem Heuristic
  • Assignment 4: 2 Sat problem

Requirements:

python3
unittest

To test:

cd [path/to/assignment-number]
python3 tests.py

Releases

No releases published

Packages

No packages published

Languages