Difference between revisions of "Chapter 2"
Jump to navigation
Jump to search
Line 4: | Line 4: | ||
:[[2.1]]. What value is returned by the following function? Express your answer as a function of <math>n</math>. Give the worst-case running time using the Big Oh notation. | :[[2.1]]. What value is returned by the following function? Express your answer as a function of <math>n</math>. Give the worst-case running time using the Big Oh notation. | ||
− | + | mystery(''n'') | |
r:=0 | r:=0 | ||
''for'' i:=1 ''to'' n-1 ''do'' | ''for'' i:=1 ''to'' n-1 ''do'' | ||
Line 15: | Line 15: | ||
− | :2.2 | + | :2.2. What value is returned by the following function? Express your answer as a function of <math>n</math>. Give the worst-case running time using Big Oh notation. |
+ | pesky(n) | ||
+ | r:=0 | ||
+ | ''for'' i:=1 ''to'' n ''do'' | ||
+ | ''for'' j:=1 ''to'' i ''do'' | ||
+ | ''for'' k:=j ''to'' i+j ''do'' | ||
+ | r:=r+1 | ||
+ | return(r) | ||
− | |||
− | :2.4 | + | :[[2.3]]. What value is returned by the following function? Express your answer as a function of <math>n</math>. Give the worst-case running time using Big Oh notation. |
+ | prestiferous(n) | ||
+ | r:=0 | ||
+ | ''for'' i:=1 ''to'' n ''do'' | ||
+ | ''for'' j:=1 ''to'' i ''do'' | ||
+ | ''for'' k:=j ''to'' i+j ''do'' | ||
+ | ''for'' l:=1 ''to'' i+j-k ''do'' | ||
+ | r:=r+1 | ||
+ | return(r) | ||
+ | |||
+ | [[2.3|Solution]] | ||
+ | |||
+ | |||
+ | :2.4. What value is returned by the following function? Express your answer as a function of <math>n</math>. Give the worst-case running time using Big Oh notation. | ||
+ | conundrum(<math>n</math>) | ||
+ | <math>r:=0</math> | ||
+ | ''for'' <math>i:=1</math> ''to'' <math>n</math> ''do'' | ||
+ | ''for'' <math>j:=i+1</math> ''to'' <math>n</math> ''do'' | ||
+ | ''for'' <math>k:=i+j-1</math> ''to'' <math>n</math> ''do'' | ||
+ | <math>r:=r+1</math> | ||
+ | return(<math>r</math>) | ||
+ | |||
:[[2.5]] | :[[2.5]] | ||
− | :2.6 | + | :2.6. Suppose the following algorithm is used to evaluate the polynomial |
+ | ::::::<math> p(x)=a_n x^n +a_{n-1} x^{n-1}+ \ldots + a_1 x +a_0</math> | ||
+ | <math>p:=a_0;</math> | ||
+ | <math>xpower:=1;</math> | ||
+ | for <math>i:=1</math> to <math>n</math> do | ||
+ | <math>xpower:=x*xpower;</math> | ||
+ | <math>p:=p+a_i * xpower</math> | ||
+ | end | ||
+ | #How many multiplications are done in the worst-case? How many additions? | ||
+ | #How many multiplications are done on the average? | ||
+ | #Can you improve this algorithm? | ||
+ | |||
− | :2.7 | + | :2.7. Prove that the following algorithm for computing the maximum value in an array <math>A[1..n]</math> is correct. |
+ | max(A) | ||
+ | <math>m:=A[1]</math> | ||
+ | ''for'' <math>i:=2</math> ''to'' n ''do'' | ||
+ | ''if'' <math>A[i] > m</math> ''then'' <math>m:=A[i]</math> | ||
+ | ''return'' (m) | ||
+ | [[2.7|Solution]] | ||
===Big Oh=== | ===Big Oh=== |
Revision as of 18:03, 3 September 2020
Contents
Algorithm Analysis
Program Analysis
- 2.1. What value is returned by the following function? Express your answer as a function of [math]\displaystyle{ n }[/math]. Give the worst-case running time using the Big Oh notation.
mystery(n) r:=0 for i:=1 to n-1 do for j:=i+1 to n do for k:=1 to j do r:=r+1 return(r)
- 2.2. What value is returned by the following function? Express your answer as a function of [math]\displaystyle{ n }[/math]. Give the worst-case running time using Big Oh notation.
pesky(n) r:=0 for i:=1 to n do for j:=1 to i do for k:=j to i+j do r:=r+1 return(r)
- 2.3. What value is returned by the following function? Express your answer as a function of [math]\displaystyle{ n }[/math]. Give the worst-case running time using Big Oh notation.
prestiferous(n) r:=0 for i:=1 to n do for j:=1 to i do for k:=j to i+j do for l:=1 to i+j-k do r:=r+1 return(r)
- 2.4. What value is returned by the following function? Express your answer as a function of [math]\displaystyle{ n }[/math]. Give the worst-case running time using Big Oh notation.
conundrum([math]\displaystyle{ n }[/math]) [math]\displaystyle{ r:=0 }[/math] for [math]\displaystyle{ i:=1 }[/math] to [math]\displaystyle{ n }[/math] do for [math]\displaystyle{ j:=i+1 }[/math] to [math]\displaystyle{ n }[/math] do for [math]\displaystyle{ k:=i+j-1 }[/math] to [math]\displaystyle{ n }[/math] do [math]\displaystyle{ r:=r+1 }[/math] return([math]\displaystyle{ r }[/math])
- 2.6. Suppose the following algorithm is used to evaluate the polynomial
- [math]\displaystyle{ p(x)=a_n x^n +a_{n-1} x^{n-1}+ \ldots + a_1 x +a_0 }[/math]
[math]\displaystyle{ p:=a_0; }[/math] [math]\displaystyle{ xpower:=1; }[/math] for [math]\displaystyle{ i:=1 }[/math] to [math]\displaystyle{ n }[/math] do [math]\displaystyle{ xpower:=x*xpower; }[/math] [math]\displaystyle{ p:=p+a_i * xpower }[/math] end
- How many multiplications are done in the worst-case? How many additions?
- How many multiplications are done on the average?
- Can you improve this algorithm?
- 2.7. Prove that the following algorithm for computing the maximum value in an array [math]\displaystyle{ A[1..n] }[/math] is correct.
max(A) [math]\displaystyle{ m:=A[1] }[/math] for [math]\displaystyle{ i:=2 }[/math] to n do if [math]\displaystyle{ A[i] \gt m }[/math] then [math]\displaystyle{ m:=A[i] }[/math] return (m)
Big Oh
- 2.8
- 2.9
- 2.10
- 2.11
- 2.12
- 2.13
- 2.14
- 2.15
- 2.16
- 2.17
- 2.18
- 2.19
- 2.20
- 2.21
- 2.22
- 2.23
- 2.24
- 2.25
- 2.26
- 2.27
- 2.28
- 2.29
- 2.30
- 2.31
- 2.32
- 2.33
- 2.34
- 2.35
- 2.36
Summations
- 2.37
- 2.38
- 2.39
- 2.40
- 2.41
- 2.42
- 2.43
Logartihms
- 2.44
- 2.45
- 2.46
- 2.47
Interview Problems
- 2.48
- 2.49
- 2.50
- 2.51
- 2.52
- 2.53
- 2.54
- 2.55
Back to Chapter List