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
barxatty [35]
3 years ago
11

Indicate the time efficiency classes of the three main operations (i.e., FindMax, DeleteMax, and Insert) of the priority queue i

mplemented as: 1. an unsorted array 2. a sorted array 3. a binary search tree 4. an AVL tree 5. a heap
Computers and Technology
1 answer:
Sholpan [36]3 years ago
5 0

Answer:

Appropriate explanation to the questions below.

Explanation:

<u>Using an Unsorted Array </u>

An unsorted array will take more time to find data hence, findMax will be slow. Time complexity is O(N). Also if we keep the array unsorted, then insert is O(1) -- ignoring the time to expand the array, but deleteMax is O(N) since we must search the whole array for the largest value.

The empty operation is trivial -- just return true if numItems == 0, so it (and the constructor) are both O(1).

<u>Using an Sorted Array </u>

The findMax operation will be faster as compared to unsorted array as either the array is sorted in descending or in ascending order the time complexity will be O(1). Also if we use an array to store the values in the priority queue, we can either store the values in sorted order (which will make the insert operation slow, and the deleteMax operation fast), or in arbitrary order (which will make the insert operation fast, and the deleteMax operation slow). Note also that we'll need a field to keep track of the number of values currently in the queue, we'll need to decide how big to make the array initially, and we'll need to expand the array if it gets full. Here's a partial class definition:

public class PriorityQueue {    

   private Comparable[] queue;

   private int numItems;

   private static final int INIT_SIZE = 10;    

   public PriorityQueue() {

       queue = new Comparable[INIT_SIZE];

numItems = 0;

   }

}

As mentioned above, if we keep the array sorted, then the insert operation is worst-case O(N) when there are N items in the queue: we can find the place for the new value efficiently using binary search, but then we'll need to move all the larger values over to the right to make room for the new value. As long as we keep the array sorted from low to high, the deleteMax is O(1) -- just decrement numItems and return the last value.

<u>Using a BST </u>

If we use a BST, then the largest value can be found in time proportional to the height of the tree by going right until we reach a node with no right child. Removing that node is also O(tree height), as is inserting a new value. If the tree stays balanced, then these operations are no worse than O(log N); however, if the tree is not balanced, insert and deleteMax can be O(N). As for the linked-list implementation, there is no need for a numItems field.

BST = In avg case it will take o(logn) worst case 0(n)

Using an AVL Tree

AVL Tree:  

  Insertion/deletion/searching: O(log n) in all cases.

But Complexity isn't everything, there are other considerations for actual performance.

For most purposes, most people don't even use an AVL tree as a balanced tree (Red-Black trees are more common as far as I've seen), let alone as a priority queue.

This is not to say that AVL trees are useless, I quite like them. But they do have a relatively expensive insert. What AVL trees are good for (beating even Red-Black trees) is doing lots and lots of lookups without modification. This is not what you need for a priority queue.

<u> </u>

<u>Using a Heap </u>

When a priority queue is implemented using a heap, the worst-case times for both insert and deleteMax are logarithmic in the number of values in the priority queue.

For the insert operation, we start by adding a value to the end of the array (constant time, assuming the array doesn't have to be expanded); then we swap values up the tree until the order property has been restored. In the worst case, we follow a path all the way from a leaf to the root (i.e., the work we do is proportional to the height of the tree). Because a heap is a balanced binary tree, the height of the tree is O(log N), where N is the number of values stored in the tree.

The deleteMax operation is similar: in the worst case, we follow a path down the tree from the root to a leaf. Again, the worst-case time is O(log N).

You might be interested in
Why is hard disk called random access medium​
Effectus [21]

Answer:

Data is accessed in a random-access manner, meaning the individual blocks of data can be stored and retrieved in any given order or time.

Explanation:

5 0
1 year ago
Read 2 more answers
What tool might be used by an attacker during the reconnaissance phase of an attack to glean information about domain registrati
Soloha48 [4]

A tool which might be used by an attacker during the reconnaissance phase of an attack to glean information about domain registrations is: Whois.

<h3>What is a DNS server?</h3>

A DNS server can be defined as a type of server that is designed and developed to translate domain names into IP addresses, so as to allow end users access websites and other internet resources through a web browser.

This ultimately implies that, a DNS server refers to a type of server that translate requests for domain names into IP addresses.

In this context, we can infer and logically deduce that Whois is a tool which might be used by an attacker during the reconnaissance phase of an attack to glean information about domain registrations.

Read more on a domain names here: brainly.com/question/19268299

#SPJ1

4 0
10 months ago
Lianna is an Information Technology professional. She usually spends her days creating custom programs for her company by writin
marusya05 [52]
Liam a would need to contact the software developer. So the answer is B
6 0
3 years ago
What does manual exposure mean
Julli [10]
Amount of light per unit area
6 0
2 years ago
Read 2 more answers
Write a program in Java programming language that given two clock times prints out the absolute number of minutes between them
Triss [41]

Answer:

// Java Program to Find the difference

// between Two Time Periods

// Importing the Date Class from the util package

import java.util.*;

// Importing the SimpleDateFormat

// Class from the text package

import java.text.*;

public class GFG {

public static void main(String[] args) throws Exception

{

 // Dates to be parsed

 String time1 = "18:00:00";

 String time2 = "7:30:50";

 // Creating a SimpleDateFormat object

 // to parse time in the format HH:MM:SS

 SimpleDateFormat simpleDateFormat

  = new SimpleDateFormat("HH:mm:ss");

 // Parsing the Time Period

 Date date1 = simpleDateFormat.parse(time1);

 Date date2 = simpleDateFormat.parse(time2);

 // Calculating the difference in milliseconds

 long differenceInMilliSeconds

  = Math.abs(date2.getTime() - date1.getTime());

 // Calculating the difference in Hours

 long differenceInHours

  = (differenceInMilliSeconds / (60 * 60 * 1000))

  % 24;

 // Calculating the difference in Minutes

 long differenceInMinutes

  = (differenceInMilliSeconds / (60 * 1000)) % 60;

 // Calculating the difference in Seconds

 long differenceInSeconds

  = (differenceInMilliSeconds / 1000) % 60;

 // Printing the answer

 System.out.println(

  "Difference is " + differenceInHours + " hours "

  + differenceInMinutes + " minutes "

  + differenceInSeconds + " Seconds. ");

}

}

7 0
2 years ago
Other questions:
  • Opportunity cost is the least desirable alternative given up as a result of a decision.
    6·1 answer
  • Why might location be important when searching for a job?
    10·2 answers
  • _____ are special combinations of keys that tell a computer to perform a command.
    9·2 answers
  • What is qwerty and why is it on the keyboard?
    15·2 answers
  • how write a program to prompt the user for hours and rate per hour using input to computer gross pay Use 35 hours and rate2.75 p
    9·1 answer
  • Which of the following is a primary disadvantage of using a GUI HTML editor to develop your Webpages?
    10·1 answer
  • How do you think we could print a sentence that uses a variable along with other text (ie: “My name is Joe” where ‘Joe’ is a var
    14·1 answer
  • An update anomaly can occur if A. an instance of the same data is stored in two or more places in the database. B. a data elemen
    7·1 answer
  • How did transistors revolutionize the world of computers?
    15·1 answer
  • What is computer hadware​
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!