1 / 18

CSE 373 Optional Section Runtime Analysis

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?.

bishop
Download Presentation

CSE 373 Optional Section Runtime Analysis

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 373 Optional SectionRuntime Analysis 2013-10-08 A. Conrad Nied

  2. Interview Question / Runtime Analysis • How do we find the integer square root of a number?

  3. Integer Square Root Solution 1 • Increment through the list of numbers from 1 to x. Call this value i . • What cases do we have?

  4. Integer Square Root Solution 1 • 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

  5. Integer Square Root Solution 1 • 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

  6. Integer Square Root Solution 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

  7. Integer Square Root Solution 1 • Implementation: inti = 1 while(i * i < x) i++ return i – 1 • Runtime • O( ? )

  8. Integer Square Root Solution 1 • Implementation: inti = 1 while(i * i < x) i++ return i – 1 • Runtime • O(n0.5)

  9. Integer Square Root Solution 1 • Implementation: inti = 1 while(i * i < x) i++ return i – 1 • Runtime • O(n0.5) • Implement it in Java together & add timing

  10. Integer Square Root Solution 2 • Binary search • Imagine all of the numbers are in an array (indexed by itself) and search for the integer root • What number should we start with first? • 0, 1, x / 2, x

  11. Integer Square Root Solution 2 • 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

  12. Integer Square Root Solution 2 • 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

  13. Integer Square Root Solution 2 • 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

  14. Integer Square Root Solution 2 • 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()

  15. Integer Square Root Solution 2 • 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)

  16. Integer Square Root Solution 2 • Runtime • T(1) = 1 • T(N) = 1 + T(N / 2) • O( ? )

  17. Integer Square Root Solution 2 • Runtime • T(1) = 1 • T(N) = 1 + T(N / 2) • O(log(n))

  18. Stuckon Proof by Induction? • Khan Academy! • https://www.khanacademy.org/math/trigonometry/seq_induction/proof_by_induction/v/proof-by-induction

More Related