Group Programming Assignments
DAA, Spring 2025
[Policy]
1. All programming assignments must be implemented in C/C++.
2. For all programming assignments, you must follow the handouts, slides, or class discussions for
the underlying algorithms.
3. Plaksha does not promote any form of plagiarism, nor do we for the DAA submission.
4. Deadlines for each assignment will be strictly enforced. A three-day extension may be granted with
a 50% penalty on the assignment’s weightage. No submissions will be accepted after the extension
period.
[Module02]
1. Implement the traditional version of binary search using a iterative approach. Maintain a
counter for the number of element comparisons and print it during execution. [Deadline: 23rd of
Feb, 11:59PM]
2. Implement the traditional version of binary search using a recursive approach. Maintain a
counter for the number of element comparisons and another for the recursion calls, and print them
during execution. [Deadline: 23rd of Feb, 11:59PM]
3. Implement the tweak version of binary search using a iterative approach. Maintain a counter
for the number of element comparisons and print it during execution. [Deadline: 23rd of Feb,
11:59PM]
4. Implement the tweak version of binary search using a recursive approach. Maintain a counter
for the number of element comparisons and another for the recursion calls, and print them during
execution. [Deadline: 23rd of Feb, 11:59PM]
5. Implement the tweak version of ternary search using a iterative approach. Maintain a counter
for the number of element comparisons and print it during execution. [Deadline: 23rd of Feb,
11:59PM]
1
[Module03]
Note:-Kindly check the “pattern of input” in the input file PDF, which is also uploaded on DLE.
1. Implement Horner’s algorithm for polynomial evaluation using a recursive approach. [Deadline:
16th of Mar, 11:59PM]
2. Implement Strassen’s algorithm for matrix multiplication of any order. [Deadline: 16th of Mar,
11:59PM]
2
[Module04]
Note:-Kindly check the “pattern of input” in the input file PDF, which is also uploaded on DLE.
1. Implement the heapsort algorithm as taught in class. Note that you need to print the total number
of MaxHeapify calls. [Deadline: 30th of Mar, 11:59PM]
2. Implement the quicksort algorithm as taught in class, where the pivot is always chosen as the leftmost
element. [Deadline: 30th of Mar, 11:59PM]
3. Implement the mergesort algorithm as taught in class. [Deadline: 30th of Mar, 11:59PM]
[Module05]
Note:-Kindly check the “pattern of input” in the input file PDF, which is also uploaded on DLE.
1. Implement the unvisal sink-finding algorithm as taught in class. Print the length of the underlying
zigzag path. [Deadline: 18th of Apr, 11:59PM]
2. Implement the BFS algorithm as taught in class. Then, using the BFS procedure, implement whether
a given graph is bipartite or not. [Deadline: 18th of Apr, 11:59PM]
3. Implement the dynamic programming algorithm for finding a longest common subsequence as taught
in class. Print the length of the underlying zigzag path while extracting lcs using Table B.
[Deadline: 18th of Apr, 11:59PM]
[Module06 - Final]
Note:-Kindly check the “pattern of input” in the input file PDF, which is also uploaded on DLE.
1. Implement Dijkstra’s algorithm, as taught in class, using an array-based implementation of the
min-priority queue. Note that you need to print the output, i.e., the single-source shortest paths.
[Deadline: 3rd of May, 11:59PM]
2. Implement Prim’s algorithm, as taught in class, using an array-based implementation of the min-
priority queue. Note that you need to print the output, i.e., the MST along with its total weight.
[Deadline: 3rd of May, 11:59PM]