1 / 18

# CSE 373 Optional Section Runtime Analysis - PowerPoint PPT Presentation

CSE 373 Optional Section Runtime Analysis. 2013-10-08 A. Conrad Nied. Interview Question / Runtime Analysis. How do we find the integer square root of a number?. Integer Square Root Solution 1. Increment through the list of numbers from 1 to x . Call this value i . What cases do we have?.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about ' CSE 373 Optional Section Runtime Analysis' - bishop

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### CSE 373 Optional SectionRuntime Analysis

2013-10-08

• How do we find the integer square root of a number?

• Increment through the list of numbers from 1 to x. Call this value i .

• What cases do we have?

• Increment through the list of numbers from 1 to x. Call this value i .

• What cases do we have?

• If i× i < x

• If i× i == x

• If i× i > x

• Increment through the list of numbers from 1 to x. Call this value i .

• What cases do we have?

• If i× i < x increment i

• If i× i == x return i

• If i× i > x return i - 1

• If i× i < x increment i

• If i× i == x return i

• If i× i > x return i – 1

• Implementation:

inti = 1

while(i * i < x)

i++

return i - 1

• Implementation:

inti = 1

while(i * i < x)

i++

return i – 1

• Runtime

• O( ? )

• Implementation:

inti = 1

while(i * i < x)

i++

return i – 1

• Runtime

• O(n0.5)

• Implementation:

inti = 1

while(i * i < x)

i++

return i – 1

• Runtime

• O(n0.5)

• Implement it in Java together & add timing

• Binary search

• Imagine all of the numbers are in an array (indexed by itself) and search for the integer root

• 0, 1, x / 2, x

• Starting with i, jump = x; search(x, i, jump)

• Proposition A: i× i <= x

• Proposition B: (i + 1) × (i + 1) > x

• What do we do in each case?

• A & B

• A only

• B only

• Neither

• Starting with i, jump = x; search(x, i, jump)

• Proposition A: i× i <= x

• Proposition B: (i + 1) × (i + 1) > x

• What do we do in each case?

• A & B return i

• A only

• B only

• Neither

• Starting with i, jump = x; search(x, i, jump)

• Proposition A: i× i <= x

• Proposition B: (i + 1) × (i + 1) > x

• What do we do in each case?

• A & B return i

• A only jump /= 2; search(x, i + jump, jump)

• B only jump /= 2; search(x, i - jump, jump)

• Neither

• Starting with i, jump = x; search(x, i, jump)

• Proposition A: i× i <= x

• Proposition B: (i + 1) × (i + 1) > x

• What do we do in each case?

• A & B return i

• A only jump /= 2; search(x, i + jump, jump)

• B only jump /= 2; search(x, i - jump, jump)

• Neither throw WhatJustHappenedException()

• Implement

intSqrt(x):

return search(x, x / 2, x / 2)

Search(x, i, jump):

if(i * i <= x)

if((i+1)(i+1) > x)

return i

else

jump /= 2

return search(x, i + jump, jump)

else

jump /= 2

return search(x, i – jump, jump)

• Runtime

• T(1) = 1

• T(N) = 1 + T(N / 2)

• O( ? )

• Runtime

• T(1) = 1

• T(N) = 1 + T(N / 2)

• O(log(n))

Stuckon Proof by Induction?