I have been trying to solve this problem, that I got for last exam. Could not get a clue how to solve it. Pls give me some hint on how to solve in nlogn time.
There are n red & n blue jugs of different sizes and shapes. All red jugs hold different amounts of water as the blue ones. For every red jug, there is a blue jug that holds the same amount of water, and vice versa. The task is to find a grouping of the jugs into pairs of red and blue jugs that hold the same amount of water.
Operation allowed: Pick a pair of jugs in which one is red and one is blue, fill the red jug with water and then pour the water into the blue jug. This operation will tell you whether the red or the blue jug can hold more water, or if they are of the same volume. Assume that such a comparison takes one time unit. Your goal is to find an algorithm that makes a minimum number of comparisons to determine the grouping.
You may not directly compare two red jugs or two blue jugs.
- Prove a lower bound of Θ(n lg n) for the number of comparisons an algorithm solving this problem must make.
- Give a randomized algorithm whose expected number of comparisons is O(n lg n)