Advanced Algorithm Design Projects
The Graph class represents an undirected graph and includes methods for adding nodes, adding edges, printing the graph, and performing a Depth-First Search to find the smallest cycle in the graph.
The Graph class represents a weighted undirected graph. The graph can be used to find the shortest paths between nodes using two different methods: a standard implementation and an implementation utilizing a Priority Queue.
The Analyzer class implements a solution for finding the Longest Common Subsequence (LCS) of two given strings using dynamic programming.
The Main class implements two algorithms for finding the maximum subarray sum problem, Divide and Conquer and Brute Force. The Divide and Conquer algorithm recursively divide the array into subproblems until base cases are reached. The base case returns the maximum subarray sum, start index, and end index for a single element.
The Brute Force algorithm uses nested loops to consider all possible subarrays and find the one with the maximum sum. It keeps track of the maximum sum, start index, and end index during the iterations.