Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AbhiiAB/b5805fe9e0956b7464d79cdf0a402940 to your computer and use it in GitHub Desktop.
Save AbhiiAB/b5805fe9e0956b7464d79cdf0a402940 to your computer and use it in GitHub Desktop.
Mid Course Summative Assessment - Advanced Algorithms (ST)

Summative Assessment Submission Instructions

  1. Login/Sign Up to your GitHub account.
  2. Fork this Gist from the Top-Right corner.
  3. Edit your Gist and write the answers inside the given problem. Consider the word limit for answers to each of these question as 200-250 words.
  4. Do NOT change anything in the structure of the existing code/functions/class given in the GitHub Gist.
  5. Share your Gist link in the submission form as per the instructions given.

Investigate the theoretical foundations of heap data structures, analyzing the ways in which heap properties contribute to the efficiency of algorithms. Compare the complexity and performance of binary heaps with other heap types.


Answer:

Explore the theoretical underpinnings of divide and conquer algorithms, evaluating their limitations and identifying scenarios where their effectiveness may vary. Provide examples illustrating instances where the divide and conquer approach excels and where it falls short.


Answer:

Examine the concept of greedy algorithms, highlighting the significance of making locally optimal choices. Investigate situations where a globally optimal solution is guaranteed and those where the inherent greediness may lead to suboptimal outcomes.


Answer:

Explore the advanced concepts in bit manipulation, such as bitwise XOR operations, and their applications in algorithmic optimizations. Also explore scenarios where bit manipulation is essential for achieving efficiency in algorithms.


Answer:

Investigate the mathematical and algorithmic complexities of matrix operations in computer science. Explore the use of matrices in representing graph structures and examine algorithms that leverage matrix manipulation for efficient computation.


Answer:

Explore the fundamental principles of dynamic programming, emphasizing optimal substructure and overlapping subproblems. Explain how these principles contribute to the effectiveness of dynamic programming solutions.


Answer:

Explore advanced dynamic programming strategies, including memoization and tabulation. Examine scenarios where each approach is more suitable and analyze their impact on the time and space complexity of dynamic programming solutions.


Answer:

Compare and contrast Dijkstra’s and Kruskal’s algorithms for graph-related problems. Evaluate the circumstances under which one algorithm is preferred over the other and provide reasons for these preferences.


Answer:

Analyze the Floyd Warshall algorithm for all-pairs shortest path and Kadane’s algorithm for maximum subarray sum. Explore the underlying principles of each algorithm and identify scenarios where they demonstrate optimal performance.


Answer:

Examine the theoretical foundations of Huffman coding, discussing how the algorithm achieves optimal prefix-free codes. Explore scenarios where Huffman coding proves particularly advantageous.


Answer:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment