1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
egoroff_w [7]
3 years ago
15

Design a data structure to support the following two operations for a set S of inte- gers, which allows duplicate values: • INSE

RT(S, x) inserts x into S. • DELETE-LARGER-HALF(S) deletes the largest d|S|/2e elements from S. Explain how to implement this data structure so that any sequence of m INSERT and DELETE-LARGER-HALF operations runs in amortized O(1) time per op- eration. Your implementation should also include a way to output the elements of S in O(|S|) time. Prove the running time of your implementation.
Computers and Technology
1 answer:
umka2103 [35]3 years ago
7 0

Answer and Explanation:

Note that we are free to use any data structure that allows for arbitrary insertion and deletion of data

As an underlying data structure, we’ll use an (unsorted) array. INSERT(S, x) will  simply append x to the array, increasing its length. This has a constant runtime,  so we’ll say its cost is 1.

DELETE-LARGER-HALF(S) will work as follows: first, use SELECT to find the  median. Next, use PARTITION around the median to make sure that the upper half is stored within the last [|S|/2] elements. Finally, we delete these elements,  reducing the size of the array.This has a linear running time, so we’ll say its cost is n.

To show that any m operations can run in O(m) time, we define a potential  function \phi(S) = 2|S|. The amortized cost of INSERT is thus 1 + \delta \phi = 1 + 1 = 1 ;  the amortized cost of DELETE-LARGER-HALF is n +\delta\phi\leq n-2(n/2) = 0. So the  amortized cost of any m operations is O(m).

This answer essentially captures the idea behind the problem. However, there  are some technical points to clear up. (Calling the real-time costs 1 and n are not among them; this underestimates the running time by at most a constant. Ignoring constants like that is necessary to make concise arguments about amortized costs.)

First, an array does not support arbitrary insertions. Possible remedies include:

(1) using a dynamic array along the lines of §17.4, or (2) using a different structure  like a linked list, and having DELETE-LARGER-HALF convert it to an array and  back in linear time so that the SELECT and PARTITION algorithms may be used.

Second, it’s important to know which median to partition around and how to  delete the upper half of the elements: a mistake could lead to incorrect behavior when the array has an odd size or repeated elements. We should select the lower median,[|S|/2], since that’s the number of elements we want in the lower set: as  written, the CLRS Partition function will put elements less than or equal to the

pivot in the left set, and strictly larger elements in the right set. (If the partition function is defined differently, the answer should be different as well. You generally  should give a brief description of how your partition function works.) After a call to Partition, it is safe simply to keep the first [|S|/2] elements and drop the rest. On the other hand, it is not safe to go around deleting every element with

a sufficiently large value—take an array of zeros as a drastic example. If you wish  to take that approach, you’ll have to count the number of elements equal to the  median and delete the correct number of them.

Finally, the argument only shows that the <em>amortized</em> cost with respect to \phi is  O(m). The conclusion we’re asked for requires a technical condition: the potential  \phi never drops below its initial value. This is true for the usual reason: initially,  \phi = 0 because S is empty; during execution, \phi \geq 0  by definition.

You might be interested in
HELP ASAP
Tju [1.3M]

Answer: B. Personal Idea

Explanation:

Issac Newton's Law of Gravity was made by the one and only, Issac Newton.

He used his time to investigate and discover this law, so choice one, cheating is not correct. Choice three is also incorrect, because the world didn't know about this law, or so much about gravity during that time.

Thus, choice two is correct because it was created and written through his ideas.

So therefore, the answer is choice two, personal idea.

Read more on Brainly.com - brainly.com/question/10659333#readmore

4 0
3 years ago
Write a Tip Calculator in code in VMware Fusion
lisabon 2012 [21]

final \: amount \times percent \: of \: tip = tip \: amount
7 0
3 years ago
"Na2SO3” represents sodium sulfite.
STatiana [176]
There are four atoms
5 0
3 years ago
Read 2 more answers
MegaCorp MegaCorp is large manufacturing firm that operates 5 factories in Dallas, 4 factories in Los Angeles, and 5 factories i
Ivenika [448]

Answer:

Recommended is frame relay architecture with a local loop at each factory supporting the frame relay service connection to the network provider's POP

Explanation:

Frame Relay can be seen as WAN protocol that is said to often operate at both the physical and data layers link of the OSI reference model due to it high-performance and due to the fact that FRAME RELAY are as well use across Integrated Services Digital Network (ISDN) interfaces in which they are designed for cost-efficient data transmission in order to enable effective intermittent traffic between local area networks (LANs) and endpoints in wide area networks (WANs) which is why frame contains all the information necessary to route it to the correct destination.

Therefore type of BN and WAN architecture and WAN service i would recommend based on the above information is FRAME RELAY ARCHITECTURE with a local loop at each factory supporting the frame relay service connection to the network provider's POP.

8 0
3 years ago
Subcribe to me for brainly my YT is KeepUsweatin
Flura [38]

Answer:

Ok got you. Will do so. Mine is Phantom Pac.

5 0
3 years ago
Other questions:
  • Discuss what they need to consider if they wish to use their devices when they are away from home?
    6·1 answer
  • Describe an application where a parallel circuit might work better than a series circuit.
    15·1 answer
  • Do you need to know javascript to learn python?
    8·1 answer
  • When using a file name you have to use only lower case letters<br>true or false
    11·1 answer
  • Computer can do work very___​
    7·2 answers
  • Write a program that reads in 10 numbers and displays the number of distinct numbers and the distinct numbers in their input ord
    14·1 answer
  • What is the family access code right now?
    5·1 answer
  • Kenny FRIEND ME. Ps that is my brother
    9·2 answers
  • which of the following can be represented by a sequence of bits. 1. An integer 2. An alphanumeric character 3. A machine languag
    12·1 answer
  • A ____ is an Access feature that makes it easy to enter data.
    7·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!