This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Illinois Institute of Technology Department of Computer Science Solutions to Homework Assignment 2 CS 430 Introduction to Algorithms Spring Semester, 2009 Due: Wednesday, February 11 1. Problem 6.43 on page 136 The problem is to get the running time of heapsort on an array A of length n that is already sorted in increasing order or decreasing order. We need to define the heapsort and refer HEAPSORT( A ) on page 136 to get its running time. Heapsort is to sort elements in the input array in increasing order or decreasing order in place. The im plementation will probably be different per each person, but we will consider the running time through HEAPSORT( A ) on page 136. As the book mentions on page 136, HEAPSORT( A ) consists of two different procedures: BULIDMAX HEAP and MAXHEAPIFY. To get the running time, we need to figure out the running time of both BULIDMAXHEAP and MAXHEAPIFY. In the former, BULIDMAXHEAP is to construct maxheap from the original input array, termed as A , and we can get the modified array, termed A . We can easily figure out the BULIDMAXHEAP procedure makes the same A regardless of the original array A . In the latter, MAXHEAPIFY is to reorder the array A to sort in increasing order. For both cases, MAXHEAPIFY takes the same time, O ( nlgn ). In the case A is sorted in increasing order, ∑ b lgn c h =0 d n/ 2 h +1 e O ( h ) = O ( n ∑ b lgn c h =0 h/ 2 h ). ∑ b lgn c h =0 h/ 2 h = 1 / 2 + 2 / 2 2 + 3 / 2 3 + 4 / 2 4 + ... ≤ 1 / 2 + 2 / 2 2 + 2 / 2 2 + 4 / 2 3 + 4 / 2 4 + 8 / 2 5 + 8 / 2 6 + 8 / 2 7 + ... = 1 / 2 + 1 / 2 2 + (1 / 2 + 1 / 2 2 + 1 / 2 3 + 1 / 2 4 + ... ) = 1 / 2 + 1 / 4 + 1 = 1 . 75 (As n → ∞ ) In BigOh notation, we can ignore any coefficient which is constant, and O ( n ∑ b lgn c h =0 h/ 2 h ) = O ( n ). In the case A is sorted in decreasing order, we do not need to move since Parent( i ) ≥ Left( i ) and Parent( i ) ≥ Right( i ). However, we have to check all nodes in the input array A , we need to visit each node exactly once. Then, we do not care about the hight of each node, we only need to consider how many nodes are in the array, O ( n ). In conclusion, in either case, the running time depends on MAXHEAPIFY, O ( nlgn ). CS 430—Spring, 2009 2 Solutions to Homework Assignment 2 2. Problem 7.45 on page 159 This problem is composed of two parts: argue that this sorting algorithm runs in...
View
Full
Document
This note was uploaded on 04/07/2009 for the course CS 430 taught by Professor Kapoor during the Spring '08 term at Illinois Tech.
 Spring '08
 KAPOOR
 Algorithms

Click to edit the document details