Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Provide a generic Java class named SortedPriorityQueue that implements a priorit

ID: 3882357 • Letter: P

Question

Provide a generic Java class named SortedPriorityQueue that implements a priority queue using a sorted list implemented with the Java ArrayList class. Make the implementation as efficient as possible.

Consider the following sorting algorithm that uses the class you wrote just wrote:

void sort(int[] array)

{

SortedPriorityQueue<Integer> queue = new SortedPriorityQueue();   for (int i = 0; i < array.length; i++)     queue.add(array[i]);

for (int i = 0; i < array.length; i++)     array[i] = queue.remove();

}

Analyze its execution time efficiency in the worst case. In your analysis you may ignore the possibility that the array list may overflow and need to be copied to a larger array. Indicate whether this implementation is more or less efficient than the one that uses the Java priority queue.

Explanation / Answer

package com.journaldev.collections;

import java.util.Comparator;

import java.util.PriorityQueue;

import java.util.Queue;

import java.util.Random;

public class PriorityQueueExample {

public static void main(String[] args) {

//natural ordering example of priority queue

Queue<Integer> integerPriorityQueue = new PriorityQueue<>(7);

Random rand = new Random();

for(int i=0;i<7;i++){

integerPriorityQueue.add(new Integer(rand.nextInt(100)));

}

for(int i=0;i<7;i++){

Integer in = integerPriorityQueue.poll();

System.out.println("Processing Integer:"+in);

}

//PriorityQueue example with Comparator

Queue<Customer> customerPriorityQueue = new PriorityQueue<>(7, idComparator);

addDataToQueue(customerPriorityQueue);

pollDataFromQueue(customerPriorityQueue);

}

//Comparator anonymous class implementation

public static Comparator<Customer> idComparator = new Comparator<Customer>(){

@Override

public int compare(Customer c1, Customer c2) {

return (int) (c1.getId() - c2.getId());

}

};

//utility method to add random data to Queue

private static void addDataToQueue(Queue<Customer> customerPriorityQueue) {

Random rand = new Random();

for(int i=0; i<7; i++){

int id = rand.nextInt(100);

customerPriorityQueue.add(new Customer(id, "Pankaj "+id));

}

}

//utility method to poll data from queue

private static void pollDataFromQueue(Queue<Customer> customerPriorityQueue) {

while(true){

Customer cust = customerPriorityQueue.poll();

if(cust == null) break;

System.out.println("Processing Customer with ID="+cust.getId());

}

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote