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
Mandarinka [93]
4 years ago
13

Problem 2 - K-Best Values - 30 points Find the k-best (i.e. largest) values in a set of data. Assume you are given a sequence of

values, one value at a time. We do not know how many elements there are in this sequence. In fact, there could be infinitely many. Implement the class KBestCounter> implements KBest that keeps track of the k-largest elements seen so far in a sequence of data. The class should have two methods: public void count(T x) - process the next element in the set of data. This operation must run in at worst O(log k) time. public List kbest() - return a sorted (smallest to largest) list of the k-largest elements. This must run in at worst O(k log k) time. The method must not clobber the state of your class. This means that if you run this method twice in a row, it should return the same values. Your KBestCounter.java class must implement the provided interface KBest.java. Use a priority queue to implement this functionality. We suggest using the built-in java.util.PriorityQueue. As always, feel free to implement your own tester file to ensure proper functionality.
Computers and Technology
1 answer:
masya89 [10]4 years ago
5 0

Answer:

See explaination

Explanation:

/**KBestCounter.java**/

import java.util.ArrayList;

import java.util.List;

import java.util.PriorityQueue;

public class KBestCounter<T extends Comparable<? super T>>

{

PriorityQueue heap;

int k;

public KBestCounter(int k)

{

heap = new PriorityQueue < Integer > ();

this.k=k;

}

//Inserts an element into heap.

//also takes O(log k) worst time to insert an element

//into a heap of size k.

public void count(T x)

{

//Always the heap has not more than k elements

if(heap.size()<k)

{

heap.add(x);

}

//if already has k elements, then compare the new element

//with the minimum element. if the new element is greater than the

//Minimum element, remove the minimum element and insert the new element

//otherwise, don't insert the new element.

else if ( (x.compareTo((T) heap.peek()) > 0 ) && heap.size()==k)

{

heap.remove();

heap.add(x);

}

}

//Returns a list of the k largest elements( in descending order)

public List kbest()

{

List al = new ArrayList();

int heapSize=heap.size();

//runs O(k)

for(int i=0;i<heapSize;i++)

{

al.add(0,heap.poll());

}

//Restoring the the priority queue.

//runs in O(k log k) time

for(int j=0;j<al.size();j++) //repeats k times

{

heap.add(al.get(j)); //takes O(log k) in worst case

}

return al;

}

}

public class TestKBest

{

public static void main(String[] args)

{

int k = 5;

KBestCounter<Integer> counter = new KBestCounter<>(k);

System.out.println("Inserting 1,2,3.");

for(int i = 1; i<=3; i++)

counter.count(i);

System.out.println("5-best should be [3,2,1]: "+counter.kbest());

counter.count(2);

System.out.println("Inserting another 2.");

System.out.println("5-best should be [3,2,2,1]: "+counter.kbest());

System.out.println("Inserting 4..99.");

for (int i = 4; i < 100; i++)

counter.count(i);

System.out.println("5-best should be [99,98,97,96,95]: " + counter.kbest());

System.out.println("Inserting 100, 20, 101.");

counter.count(100);

counter.count(20);

counter.count(101);

System.out.println("5-best should be [101,100,99,98,97]: " + counter.kbest());

}

}

You might be interested in
You've been hired as a consultant to help an online store owner. You need to complete the implementation of conversion tracking
mote1985 [20]

Answer:

Google Tag Assistant can help you in the following  ways:

  • It tells you location of tags on each web page. So this feature helps by giving you a complete overview of your tags that where they are working on which page of a site.
  • It provides reasons for non-efficiency of tags. If a tag is not working then a given feature provides the reason like some error or network issue or something else which causes the tags to cease working.

Explanation:

Tag Assistant is a Chrome Extension that helps by  automatically validating the implementation of Google tracking scripts on any given page.

It automatically creates snippets for tag code.

So that tag code snippet will help you by allowing you to add it anywhere you want to add on a website or page by adding its code.

It also creates the Google Click Identifier tag that has an abbreviation as (GCLID).

<h3>I hope it will help you!</h3>
8 0
3 years ago
What value will be stored in the variable t after each of the following statements
olga55 [171]

Answer:

A) t = true

B) t = false

C) t = false

D) t = true

Explanation:

Part A, here 12 is greater than 1 so the condition is true.That is why "t" will hold "true".Part B, here 0 is not greater than 2 so this condition fails.Therefore "t" will hold "false" in this case.Part C,3*2=6 and we are comparing 5 with 6  Therefore condition fails here.That is why "t" will hold "false".Part D, here  we are comparing 5 with 5 and both are equal.So "t" will hold "true".

7 0
3 years ago
Why does coinbase keep sending me verification codes
DIA [1.3K]

Answer:

i dont know

Explanation:

8 0
3 years ago
In javascript, what can I put after player. to make my character go in the center of the screen? like example:
melamori03 [73]

Answer:

0,0

Explanation:

you could try to use the x-axis and y-axis to put your character in a certain place. I'm not totally sure if that is how javascript works, but for the x-axis and y-axis, the center is always(0,0).

6 0
4 years ago
Need the answer ASAP PLZ!!!! I’ll mark brainliest if it’s correct
Katena32 [7]

Answer:

update standards

i think this is correct

don't be afraid to correct me if im wrong

Explanation:

mrk me brainliest

5 0
3 years ago
Other questions:
  • What is the primary purpose of a business plan? To file for incorporation To help you identify your goals and plan how you will
    6·1 answer
  • Internet-filtering software that electronically blocks out websites in specific rating categories is called _____________ by tho
    9·1 answer
  • Should software companies be able to send automatic updates to your computer withoput your knowledge
    14·1 answer
  • The main benefit of shielded twisted pair cabling over unshielded twisted pair is that STP is much more durable.
    13·1 answer
  • What is the purpose of a diode in a cordless drill or power screwdriver?
    14·1 answer
  • You have created a new DHCP scope with address range 192.168.1.1 to 192.168.1.254. You have five servers configured with static
    8·1 answer
  • For the following scenario, indicate whether the action is a good practice or bad practice for safeguarding your personally iden
    6·1 answer
  • ____________________ parameters are useful in three situations: • When the value of the actual parameter needs to be changed • W
    5·1 answer
  • List the caveats to this analysis and how they affect the research. How does this document define the ""typical game developer""
    7·2 answers
  • Que elementos han impactado las computadoras en la sociedad?​
    12·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!