Question

As mentioned in the class, the modern 3Sum conjecture states that there is no 3Sum algo- rithm that runs in time O(n) for fix

0 0
Add a comment Improve this question Transcribed image text
Answer #1

// NOTE: I have useds comments in pseudocode for illustration you can remove it.

The Naive Approach:
We can generate all possible triplets and compare the sum if its equal to zero. THe Naive approach will require 3 loops having time complexity of
O(N^3)

Optimized solution
We can optimize the solution if we sort the given input, Sorting gives us advantage of ordering of elements.

Approach:

Sort the input.
Iterate over loop on input
Fix the first element as a = A[i]
Iterate over loop again to find b and c such that a + b + c = 0
as given in this pseudocode

sort(input); // O(NlogN)
for i=0 to n-2 do // O(N)
    // fix first element and initialize two varailbes to find b and c
    a = input[i];
    begin = i+1; // left index
    end = n-1;    // right index
    while (begin < end) do // O(N)
       b = input[begin]
       c = input[end];
       // if we found the sum print the values
       if (a + b + c == 0) then
          print (a,b,c)
          // increase left index
          begin = begin + 1;
          // decrease right index // do this to find remaining pairs
          end = end - 1;
       // Our goal here is to get sum as 0, so we can reduce the value of c by decreasing right index    
       else if (a + b + c > 0) then
          end = end - 1;
       // a + b + c < 0, we need to increase the total value, increase left index
       else
          begin = begin + 1;  
    end
end

total complexity O(NlogN) + O(N)* O(N) = O(N^2)

Algorithm correctness:
For given input we are sorting the input before processing.
Suppose we have a solution a + b + c = 0 and a < b < c
now a is fixed in first loop, and we are finding b and c.
We are using left index for b and right index for c

Case 1: if a + b + c > 0 then there will be no solution if we increase right index further as sum will always be greater than 0
Case 2: if a + b + c < 0 then there will be no solution if we dcrease left index further as sum will always be less than 0
Case 3: if a + b + c = 0, we found the solution. as total sum is equal to 0

Add a comment
Know the answer?
Add Answer to:
As mentioned in the class, the modern 3Sum conjecture states that there is no 3Sum algo- rithm th...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • In this question, we will think about how to answer shortest path problems where we have more than just a single sourc...

    In this question, we will think about how to answer shortest path problems where we have more than just a single source and destination. Answer each of the following in English (not code or pseudocode). Each subpart requires at most a few sentences to answer. Answers significantly longer than required will not receive full credit You are in charge of routing ambulances to emergency calls. You have k ambulances in your fleet that are parked at different locations, and you...

  • QUESTION 1: Why must project manager should have good technical skills but also good management skills?...

    QUESTION 1: Why must project manager should have good technical skills but also good management skills? QUESTION 2: **Communication and Communicator are related" This quote from the text suppose that the communication process is lead by the spokeperson. Do you think is it a gift" to be a good communicator or a skill to improve ( use example of your knowledge to answer)? QUESTION 3: Look at the text paragraph yellow highlighted, and do you think that in today's world...

  • This C++ Program consists of: operator overloading, as well as experience with managing dynamic memory allocation...

    This C++ Program consists of: operator overloading, as well as experience with managing dynamic memory allocation inside a class. Task One common limitation of programming languages is that the built-in types are limited to smaller finite ranges of storage. For instance, the built-in int type in C++ is 4 bytes in most systems today, allowing for about 4 billion different numbers. The regular int splits this range between positive and negative numbers, but even an unsigned int (assuming 4 bytes)...

  • Read “Instituionalizing our Demise: America vs Multiculturalism” by Roger Kimball on pg 268 and “Reinventing America”...

    Read “Instituionalizing our Demise: America vs Multiculturalism” by Roger Kimball on pg 268 and “Reinventing America” Call for a new national indentity” by Elizabeth Martinez on pg 275. Create a double entry notebook for each reading selection It should be atleast five observation and responses. wric 268 PART 2 essay pro. exactly how and why their authors disagree. Instead of with parties in conflict as mediators do, you will nt of view designed to appeal to both sides, mediatn posing...

  • Please read the article and answer about questions. You and the Law Business and law are...

    Please read the article and answer about questions. You and the Law Business and law are inseparable. For B-Money, the two predictably merged when he was negotiat- ing a deal for his tracks. At other times, the merger is unpredictable, like when your business faces an unexpected auto accident, product recall, or government regulation change. In either type of situation, when business owners know the law, they can better protect themselves and sometimes even avoid the problems completely. This chapter...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT