This preview shows page 1. Sign up to view the full content.
Unformatted text preview: CS180 Spring 2009 Homework 2 Solutions 2.3 2 n , n + 10, n 2 log n , n 2 . 5 , 10 n , 100 n 2.6 (a) This algorithm is O ( n 3 ) (b) The number of additions made by this algorithm: n i =1 ( n j = i +1 ( j i + 1)) = n i =1 ( n j = i +1 j ( n i ) i + n i ) = n i =1 ( n ( n +1) 2 i ( i +1) 2 ni + i 2 + n i ) Now that the sum over j has been removed, all remaining sums are from i = 1 to n . This will make the rest a bit easier to read. = n 3 +3 n 2 2 + 1 2 ( i 2 ) 3 2 ( i ) n ( i ) = n 3 +3 n 2 2 + n ( n +1)(2 n +1) 12 3( n )( n +1) 4 n 3 + n 2 2 = n 3 +3 n 2 2 + 2 n 3 +3 n 2 + n 12 3 n 2 +3 n 4 n 3 + n 2 2 Lets collect the n 3 terms, as they are the highest order terms. We have: ( 1 2 + 1 6 1 2 ) n 3 = n 3 6 , so we have ( n 3 ). (c) The better algorithm is based on the observation that the sum of A [ i..j ] is calculated for B [ i,j ] and again for B [ i,j + 1]. This is wasteful. Instead, let B [ i,i ] = A [ i ] and B [ i,j ] = B [ i,j...
View Full
Document
 Spring '09
 Mayer

Click to edit the document details