Introduction to Algorithms
3rd Edition
ISBN: 9780262033848
Author: Thomas H. Cormen, Ronald L. Rivest, Charles E. Leiserson, Clifford Stein
Publisher: MIT Press
expand_more
expand_more
format_list_bulleted
Concept explainers
Question
Chapter 6.2, Problem 2E
Program Plan Intro
To write the procedure MIN-HEAPIFY( A,i ) that performs the operations of min-heap. Also, compare the running time of MAX-HEAPIFY to that of MIN-HEAPIFY
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
The bounded-buffer solution in the below code uses a last-in-first-out strategy (LIFO).Change the code to implement a FIFO (First-in-First-out) strategy. You may use the (in,out) pointer method(using semaphores to test if the queue is full or empty shouldalleviate the problem of only using up N-1 locations) or implement a FIFO queue. Usethe correct counting semaphore implementation.
C code below
*******************************************************************************************************************************
#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <semaphore.h>#define SIZE 5#define NUMB_THREADS 6#define PRODUCER_LOOPS 2typedef int buffer_t;buffer_t buffer[SIZE];int buffer_index;pthread_mutex_t buffer_mutex;/* initially buffer will be empty. full_semwill be initialized to buffer SIZE, which meansSIZE number of producer threads can write to it.And empty_sem will be initialized to 0, so noconsumer can read from buffer until a…
Design a more efficient version of HeapVector that keeps its values in order only when necessary: When values are added, they are appended to the end of the existing heap and a nonHeap flag is set to true. When values are removed, the nonHeap flag is checked and the Vector is heapified if necessary. What are the worst-case and best-case running times of the add and remove operations?
Design a efficient version of HeapVector that keeps its valuesin order only when necessary: When values are added, they are appended tothe end of the existing heap and a nonHeap flag is set to true. When valuesare removed, the nonHeap flag is checked and the Vector is heapified if necessary. What are the worst-case and best-case running times of the add andremove operations?
Chapter 6 Solutions
Introduction to Algorithms
Ch. 6.1 - Prob. 1ECh. 6.1 - Prob. 2ECh. 6.1 - Prob. 3ECh. 6.1 - Prob. 4ECh. 6.1 - Prob. 5ECh. 6.1 - Prob. 6ECh. 6.1 - Prob. 7ECh. 6.2 - Prob. 1ECh. 6.2 - Prob. 2ECh. 6.2 - Prob. 3E
Ch. 6.2 - Prob. 4ECh. 6.2 - Prob. 5ECh. 6.2 - Prob. 6ECh. 6.3 - Prob. 1ECh. 6.3 - Prob. 2ECh. 6.3 - Prob. 3ECh. 6.4 - Prob. 1ECh. 6.4 - Prob. 2ECh. 6.4 - Prob. 3ECh. 6.4 - Prob. 4ECh. 6.4 - Prob. 5ECh. 6.5 - Prob. 1ECh. 6.5 - Prob. 2ECh. 6.5 - Prob. 3ECh. 6.5 - Prob. 4ECh. 6.5 - Prob. 5ECh. 6.5 - Prob. 6ECh. 6.5 - Prob. 7ECh. 6.5 - Prob. 8ECh. 6.5 - Prob. 9ECh. 6 - Prob. 1PCh. 6 - Prob. 2PCh. 6 - Prob. 3P
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- a. Write the recursive method for adding a node in a linked list. b. Consider the infix expression 15 + 2 – 10 / 2 ∗ 2 and convert this into postfix expression using stack. Next Token Action Effect on operatorStack Effect on postfix 15 + 2 - 10 / 2 * 2arrow_forwardCan you please explain this code to me step-by-step? I especially did not get how s.append(x) is iteratively adding the elements back to the stack without any loop. Note: If you can spot any mistake in the function call, please point that out as well. CODE To Delete Middle Element of a Stack: def deleteMid_util(s, sizeOfStack, current): #if current pointer is half of the size of stack then we #are accessing the middle element of stack. if(current==sizeOfStack//2): s.pop() return #storing the top element in a variable and popping it. x = s.pop() current+=1 #calling the function recursively. deleteMid_util(s,sizeOfStack,current) #pushing the elements (except middle element) back #into stack after recursion calls. s.append(x) def deleteMid(s, sizeOfStack): deleteMid_util(s, sizeOfStack, 0) res = deleteMid([1,2,3,4,5], 5) print(res)arrow_forwardan application has a huge number of find the maximum operations, but a relatively small number of insert and remove the maximum operations. Which priority- queue implementation do you think would be most effective: heap, unordered array, or ordered array? Explain your Answer.arrow_forward
- screen shoot shows the text arrayboundedqueue and arrayunboundedqueue which approach does the text's use to creating an array-based queue implementation: A. the same as its approach to the array-based stack. B. the fixed-front approach. C. the floating-front approach.arrow_forwardGive two advantages of a stack-based IF as an example. Give an example of a drawback.arrow_forwardExplain the difference between the bound stack and the unbounded stack in more detail, please.arrow_forward
- In this question, you are to implement two functions for reversing linked lists. One function, reverse_iter(..), must use an iterative approach (i.e., loops), whereas the other function, reverse_rec(..), must use recursion instead. We have already implemented the linked list as well as all its helper-functions in the Ilist-module.arrow_forwardWrite a Reverse Polish Notation (RPN) calculator in Java. Write a Stack class for doubles: constructor and push, pop, empty, peek functions. Use an array implementation for the stack (or a linked list if you did this before class on 3/5). If you want, you can limit the stack size to ten (HP only had three on their first attempt!), but in that case you should make your push do nothing if the stack is full. Most modern stack implementations have no arbitrary size limit. The pop and peek methods should throw an exception if they are called on an empty stack (see code for this below). Write a RPN class: constructor (takes a String expression, e.g. "3 4 5 + *") and an evaluate method which returns a double ("3 4 5 + *" would evaluate to (4+5)*3=27). Write a RPNCalculator class: main method with whatever accouterments you see fit. Allow the user to type in an expression, then evaluate it and repeat until they say quit.arrow_forwardHow does a link-based implementation of the List differ from an array-based implementation? Select one: a. All of these b. A link-based implementation does not need to shift entries over to make room when adding a new entry to the List c. A link-based implementation is sized dynamically so it takes up only the memory to hold the current entries d. A link-based implementation does not need to shift entries up to remove a gap when removing an entry from the Listarrow_forward
- The specifications for the Sorted List ADT state that the item to bedeleted is in the list.1. Rewrite the specification for DeleteItem so that the listis unchanged if the item to be deleted is not in the list.2. Implement DeleteItem as specified in (a) using anarray-based implementation.3. Implement DeleteItem as specified in (a) using alinked implementation.4. Rewrite the specification for DeleteItem so that allcopies of the item to be deleted are removed if they exist.5. Implement DeleteItem as specified in (d) using anarray-based implementation.6. Implement DeleteItem as specified in (d) using alinked implementation.arrow_forwardObjectives: The code for the different stack and queue operations in both implementations (array and linked list) are discussed in the lectures: and are written in the lectures power point. So the main object of this assignment is to give the student more practice to increase their understanding of the different implementation of these operations. - The students also are asked to write by themselves the main methods in the different exercises below; The Lab procedures: The following files must be distributed to the students in the Lab - arrayImpOfStack.java // it represents an array implementation of the stack. - pointerImOfStack.java // it represents a Linked List implementation of the stack. - pointerImOfQueue.java // it represents a pointer implementation of the queue. Then the students by themselves are required to write the code for the following questions Ex1) Given the file arrayImpOfStack.java then write a main method to read a sequence of numbers and using the stack…arrow_forwardContinuing on from your implementation of the PriorityQueue class, add the method create_heap_fast (self, values) which takes a Python list as a parameter. This method should put elements from the Python list into the priority queue without using the insert method. The Big-O of this method is O(n). The method should do the following: • Insert each element from the parameter list and append it to the binary heap. • Set the size to the number of elements in the parameter list. • Get the starting index position (i.e. last element which has a child, size // 2). • Rearrange the elements starting from the above index position by calling the percolate_down() method. • Keep rearranging and working backwards towards the root. Note: submit the entire class definition. You can assume that the parameter list is not empty. For example: Test pq PriorityQueue () keys [9, 5, 8, 6, 3, 2] pq.create_heap_fast(keys) = = print (pq) Result [0, 2, 3, 8, 6, 5, 9]arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education