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
Please help me with this question. I don’t get it
Lelechka [254]
A - they all use microprocessors to compute and store data.
3 0
3 years ago
Read 2 more answers
Suppose that a flow network G=(V,E)G = (V, E)G=(V,E) violates the assumption that the network contains a path s⇝v⇝ts \leadsto v
Alex17521 [72]

Answer:

Hi your question is poorly written attached below is the complete question

answer : TRUE ( a )

Explanation:

The statement about a flow network is true because when there is a vertex in the flow network that inhibits the source from reaching the sink, the vertex can be successfully removed without altering the maximum flow in the flow network.

as given in the question ;  if f(u,v) = f(v,u) =0   we can remove the vertex.

4 0
4 years ago
We will pass in a value N. Write a program that outputs the complete Fibonacci sequence for N iterations. Important: If N is 0,
jasenka [17]

Answer:

The program written in Python is as follows

def fibonac(N):

    series = ""

    for i in range(0,N+1):

         series = series + str(i) + ","

   return series[:-1]

N = int(input("Number: "))

print(fibonac(N))

Explanation:

This line defines the function fibonac

def fibonac(N):

This line initializes variable "series" to an empty string

    series = ""

This line iterates through the passed argument, N

    for i in range(0,N+1):

This line determines the Fibonacci sequence

         series = series + str(i) + ","

Lastly, this line returns the Fibonacci sequence

   return series[:-1]

The main starts here

The firs line prompts user for input

N = int(input("Number: "))

This line prints the Fibonacci sequence

print(fibonac(N))

3 0
3 years ago
Tom wants to send an image by email to his friend Nadia. He needs to reduce
erica [24]

<u>1</u><u>s</u><u>t</u><u> </u><u>Method:</u>

  • Reduce the size of the image in <u>Paints.</u>

<u>2</u><u>n</u><u>d</u><u> </u><u>Method:</u>

  • Right-click the selected file you want to send.
  • Click on <u>Send To</u> > M<u>ail Recipient</u>.
  • The Send Pictures via E-mail dialog box appears.
  • Click <u>Make all my pictures smaller</u>, and then click OK.

Hope you could understand.

If you have any query, feel free to ask

6 0
3 years ago
When admitting digital evidence at trial, the issue of ________ comes up when the evidence involves computer-generated records.
kari74 [83]

Answer:

When admitting digital evidence at trial, the issue of <u>Authenticity</u> comes up when the evidence involves computer-generated records.

Explanation:

The digital evidence such as video, audio or some pictures have been presented before court as evidence. The first question that may arise is related to "authenticity of the material". To authenticate that evidence court may order the forensic audit of that particular evidence.

<em>So, the issue of authenticity of evidence will arise, in case of digital evidence.</em>

5 0
4 years ago
Other questions:
  • Which of these devices must be installed in every indevidual computing device on the network
    14·1 answer
  • In an excel table, which of the following represents a column of data?
    8·1 answer
  • Workstation control standards institute security requirements to harden end user devices. For example, a Malicious Code Protecti
    10·1 answer
  • Suppose we used an Internet Addressing protocol that used 4 bits to encode a single address. How many devices would be supported
    15·1 answer
  • The keys to successful outsourcing are accountability, reporting, and ___
    7·1 answer
  • Suppose you are among those who believe that the NLRA should be transformed. What arguments support the claim that a complete ov
    6·1 answer
  • Write a program that reads an integer between o and 1000 and adds all the digits in the integer. For example, if an integer is 9
    11·1 answer
  • which type of encoding involves relating new information to existing knowledge that you already have stored in long-term memory?
    6·1 answer
  • 1. If we want define style for an unique element, then which css selector will
    14·1 answer
  • What is a benefit of an account with interest?
    5·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!