0% found this document useful (2 votes)
92 views

Assignment 1

This document describes an assignment to compare the running time complexity of the 3-sum and fast 3-sum algorithms. Students are asked to implement both algorithms to find triplets in arrays that sum to 0, run them on sample input sizes, and record the running times in a table. They are also asked to plot a graph comparing the running times to analyze the efficiency of the two algorithms.

Uploaded by

Aakash Parkash
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (2 votes)
92 views

Assignment 1

This document describes an assignment to compare the running time complexity of the 3-sum and fast 3-sum algorithms. Students are asked to implement both algorithms to find triplets in arrays that sum to 0, run them on sample input sizes, and record the running times in a table. They are also asked to plot a graph comparing the running times to analyze the efficiency of the two algorithms.

Uploaded by

Aakash Parkash
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Assignment 1: Analysing 3-sum and Fast 3-sum algorithms

Objectives The objective of this assignment is to compare the running time complexity of 3-sum and fast 3sum algorithms. Description The 3-sum is a simple algorithm that finds triplets in an array that sum to 0. The brute force method to solve this problem uses triple for loops to find all combinations. The complexity for this method is high i.e. the order of N3. The fast 3-sum algorithm is an improvement that uses sorting and binary search to find triplets that sum to 0. The fast 3-sum improves on the 3-sum algorithm in terms of complexity.
Task 1

Implement the 3-sum algorithm and print out running times for 1k, 4k and 8k integers. You can generate these integers using a simple function that runs a for loop with the random function to generate these integers.
Task 2

Implement the fast 3-sum algorithm and print out running times for 1k, 4k and 8k integers. You will need to use some sorting algorithm to sort your data and the binary search algorithm to search data.
Table

1k 3-sum Fast 3-sum

Running times for input data in seconds 4k

8k

Fill in the above table and plot a graph to show the comparisons of running times of the two algorithms.
Note

You can measure the efficiency of the algorithms by calculating the time it takes to execute the algorithm. You can use a built-in C++ function called clock() to compute the time.
#include <ctime> ... // header file for clock() and CLOCKS_PER_SEC

clock_t start = clock(); // start timer <Your code comes here> clock_t stop = clock(); // stop timer cpu_time_used = float(stop-start)/CLOCKS_PER_SEC; //time in seconds

Deliverable You are required to upload the assignment as Assign1_your_name.doc on LMS.

You might also like