Question: public class Word implements Comparable { public String value; public Integer frequency; public Word(String value, Integer frequency){ this.value = value; this.frequency = frequency; } @Override

public class Word implements Comparable{

public String value;

public Integer frequency;

public Word(String value, Integer frequency){

this.value = value;

this.frequency = frequency;

}

@Override

public int compareTo(Word otherWord) {

if(this.frequency.equals(otherWord.frequency))

return -1 * this.value.compareTo(otherWord.value);

else

return this.frequency.compareTo(otherWord.frequency);

}

public String toString(){

return "[" + value + ", " + frequency + "]";

}

}

public class Selector {

private static void swap(Word[] array, int i, int j){

if(i == j) return;

Word temp = array[i];

array[i] = array[j];

array[j] = temp;

}

// Problem #4 (5 pts)

// Fill in the following method with an O(n + klog(n)) time algorithm

// that returns the k largest elements of array in order from

// largest to smallest.

// Note: This should return an array with k elements.

// All comparison must be done by the compareTo method.

// Hint: Your approach should use a BinaryHeap.

public static Word[] heapSelect(Word[] array, int k){

return null;

}

Note: a Word consists a word itself and the frequency. ex) [apple, 25]

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!