数学基础(好难背啊)
同阶函数集合
Θ
(
f
(
n
)
)
=
{
g
(
n
)
∣
∃
c
1
,
c
2
>
0
,
n
0
,
∀
n
>
n
0
,
c
1
f
(
n
)
≤
g
(
n
)
≤
c
2
f
(
n
)
}
\Theta(f(n))=\{g(n)|\exist c_{1},c_{2}>0,n_{0},\forall n>n_{0},c_{1}f(n)\le g(n)\le c_{2}f(n)\}
Θ(f(n))={g(n)∣∃c1,c2>0,n0,∀n>n0,c1f(n)≤g(n)≤c2f(n)}
低阶函数集合
O
(
f
(
n
)
)
=
{
g
(
n
)
∣
∃
c
>
0
,
n
0
,
∀
n
>
n
0
有
0
≤
g
(
n
)
≤
c
f
(
n
)
}
O(f(n))=\{g(n)|\exist c>0,n_{0},\forall n>n_{0}有0\le g(n) \le cf(n)\}
O(f(n))={g(n)∣∃c>0,n0,∀n>n0有0≤g(n)≤cf(n)}
高阶函数集合
Ω
(
f
(
n
)
)
=
{
g
(
n
)
∣
∃
c
>
0
,
n
0
,
∀
n
>
n
0
有
0
≤
c
f
(
n
)
≤
g
(
n
)
}
\Omega(f(n))=\{g(n)|\exist c>0,n_{0},\forall n>n_{0}有0\le cf(n)\le g(n)\}
Ω(f(n))={g(n)∣∃c>0,n0,∀n>n0有0≤cf(n)≤g(n)}
严格低阶函数集合
o
(
f
(
n
)
)
=
{
g
(
n
)
∣
∀
c
>
0
,
∃
n
0
,
∀
n
>
n
0
有
0
≤
g
(
n
)
<
c
f
(
n
)
}
o(f(n))=\{g(n)|\forall c>0,\exist n_{0},\forall n>n_{0}有0\le g(n) < cf(n)\}
o(f(n))={g(n)∣∀c>0,∃n0,∀n>n0有0≤g(n)<cf(n)}
严格高阶函数集合
ω
(
f
(
n
)
)
=
{
g
(
n
)
∣
∀
c
>
0
,
∃
n
0
,
∀
n
>
n
0
有
0
≤
c
f
(
n
)
<
g
(
n
)
}
\omega(f(n))=\{g(n)|\forall c>0,\exist n_{0},\forall n>n_{0}有0\le cf(n)< g(n)\}
ω(f(n))={g(n)∣∀c>0,∃n0,∀n>n0有0≤cf(n)<g(n)}
定理1:
f
(
n
)
=
Θ
(
g
(
n
)
)
⟺
f
(
n
)
=
O
(
g
(
n
)
)
且
f
(
n
)
=
Ω
(
g
(
n
)
)
f(n)=\Theta(g(n))\iff f(n)=O(g(n))且f(n)=\Omega(g(n))
f(n)=Θ(g(n))⟺f(n)=O(g(n))且f(n)=Ω(g(n))
命题1:
f
(
n
)
=
o
(
g
(
n
)
)
⟺
lim
n
→
∞
f
(
n
)
g
(
n
)
=
0
f(n)=o(g(n))\iff \lim_{n \to \infin}\frac{f(n)}{g(n)}=0
f(n)=o(g(n))⟺limn→∞g(n)f(n)=0
命题2:
f
(
n
)
=
o
(
g
(
n
)
)
⟺
g
(
n
)
=
ω
(
f
(
n
)
)
f(n)=o(g(n))\iff g(n)=\omega(f(n))
f(n)=o(g(n))⟺g(n)=ω(f(n))
命题3:
g
(
n
)
=
ω
(
f
(
n
)
)
⟺
lim
n
→
∞
g
(
n
)
f
(
n
)
=
0
g(n)=\omega(f(n))\iff \lim_{n \to \infin}\frac{g(n)}{f(n)}=0
g(n)=ω(f(n))⟺limn→∞f(n)g(n)=0
传递性:
f
(
n
)
=
Θ
(
g
(
n
)
)
∧
g
(
n
)
=
Θ
(
h
(
n
)
)
⇒
f
(
n
)
=
Θ
(
h
(
n
)
)
f(n)=\Theta(g(n))\wedge g(n)=\Theta(h(n))\Rightarrow f(n)=\Theta(h(n))
f(n)=Θ(g(n))∧g(n)=Θ(h(n))⇒f(n)=Θ(h(n))
f
(
n
)
=
O
(
g
(
n
)
)
∧
g
(
n
)
=
O
(
h
(
n
)
)
⇒
f
(
n
)
=
O
(
h
(
n
)
)
f(n)=O(g(n))\wedge g(n)=O(h(n))\Rightarrow f(n)=O(h(n))
f(n)=O(g(n))∧g(n)=O(h(n))⇒f(n)=O(h(n))
f
(
n
)
=
Ω
(
g
(
n
)
)
∧
g
(
n
)
=
Ω
(
h
(
n
)
)
⇒
f
(
n
)
=
Ω
(
h
(
n
)
)
f(n)=\Omega(g(n))\wedge g(n)=\Omega(h(n))\Rightarrow f(n)=\Omega(h(n))
f(n)=Ω(g(n))∧g(n)=Ω(h(n))⇒f(n)=Ω(h(n))
f
(
n
)
=
o
(
g
(
n
)
)
∧
g
(
n
)
=
o
(
h
(
n
)
)
⇒
f
(
n
)
=
o
(
h
(
n
)
)
f(n)=o(g(n))\wedge g(n)=o(h(n))\Rightarrow f(n)=o(h(n))
f(n)=o(g(n))∧g(n)=o(h(n))⇒f(n)=o(h(n))
f
(
n
)
=
ω
(
g
(
n
)
)
∧
g
(
n
)
=
ω
(
h
(
n
)
)
⇒
f
(
n
)
=
ω
(
h
(
n
)
)
f(n)=\omega(g(n))\wedge g(n)=\omega(h(n))\Rightarrow f(n)=\omega(h(n))
f(n)=ω(g(n))∧g(n)=ω(h(n))⇒f(n)=ω(h(n))
自反性:
f
(
n
)
=
Θ
(
f
(
n
)
)
f(n)=\Theta(f(n))
f(n)=Θ(f(n))
f
(
n
)
=
O
(
f
(
n
)
)
f(n)=O(f(n))
f(n)=O(f(n))
f
(
n
)
=
Ω
(
f
(
n
)
)
f(n)=\Omega(f(n))
f(n)=Ω(f(n))
对称性:
f
(
n
)
=
Θ
(
g
(
n
)
)
⟺
g
(
n
)
=
Θ
(
f
(
n
)
)
f(n)=\Theta(g(n))\iff g(n)=\Theta(f(n))
f(n)=Θ(g(n))⟺g(n)=Θ(f(n))
反对称性:
f
(
n
)
=
O
(
g
(
n
)
)
⟺
g
(
n
)
=
Ω
(
f
(
n
)
)
f(n)=O(g(n))\iff g(n)=\Omega(f(n))
f(n)=O(g(n))⟺g(n)=Ω(f(n))
f
(
n
)
=
o
(
g
(
n
)
)
⟺
g
(
n
)
=
ω
(
f
(
n
)
)
f(n)=o(g(n))\iff g(n)=\omega(f(n))
f(n)=o(g(n))⟺g(n)=ω(f(n))
求解时间复杂性(思想贼简单,应用就不咋会了)
迭代方法:把方程转化成一个和式,然后用估计和的方法求解
替代方法:先猜测方程的解,然后用数学归纳法证明(基本上用不到,能猜出来的还用你算?)
Master方法:求解型为
T
(
n
)
=
a
T
(
n
/
b
)
+
f
(
n
)
T(n)=aT(n/b)+f(n)
T(n)=aT(n/b)+f(n)的递归方程
用迭代法解方程
T
(
n
)
=
T
(
9
n
/
10
)
+
n
T(n)=T(9n/10)+n
T(n)=T(9n/10)+n
T
(
n
)
=
T
(
9
n
/
10
)
+
n
T(n) = T(9n/10)+n
T(n)=T(9n/10)+n
=
T
(
9
2
n
/
1
0
2
)
+
n
+
n
=T(9^2n/10^2)+n+n
=T(92n/102)+n+n
=
T
(
9
3
n
/
1
0
3
)
+
n
+
n
+
n
=T(9^3n/10^3)+n+n+n
=T(93n/103)+n+n+n
=
…
= …
=…
=
T
(
9
k
n
/
1
0
k
)
+
k
n
,
n
=
(
10
/
9
)
k
= T(9^kn/10^k)+kn , n=(10/9)^k
=T(9kn/10k)+kn,n=(10/9)k
=
T
(
1
)
+
k
n
= T(1)+kn
=T(1)+kn
=
T
(
1
)
+
n
l
o
g
(
10
/
9
)
n
= T(1)+nlog(10/9)n
=T(1)+nlog(10/9)n
=
Θ
(
n
log
10
/
9
n
)
=\Theta(n\log_{10/9}n)
=Θ(nlog10/9n)
解方程
T
(
n
)
=
9
T
(
n
/
3
)
+
n
T(n)=9T(n/3)+n
T(n)=9T(n/3)+n
a
=
9
,
b
=
3
,
n
log
b
a
=
n
2
a=9,b=3,n^{\log_{b}{a}}=n^2
a=9,b=3,nlogba=n2
因
为
f
(
n
)
=
n
=
O
(
n
log
b
a
−
ϵ
)
,
ϵ
=
1
因为f(n)=n=O(n^{\log_{b}{a}}-\epsilon),\epsilon=1
因为f(n)=n=O(nlogba−ϵ),ϵ=1
T
(
n
)
=
Θ
(
n
log
b
a
)
=
Θ
(
n
2
)
T(n)=\Theta(n^{\log_{b}{a}})=\Theta(n^2)
T(n)=Θ(nlogba)=Θ(n2)
算法设计与分析第一次作业题
1.用伪代码写出求整数最大公因子的欧几里得算法。
递归法:
(
1
)
i
f
a
=
0
(1) if a=0
(1)ifa=0
t
h
e
n
then
then
(
2
)
r
e
t
u
r
n
(2)\quad return
(2)return
b
b
b
(
3
)
i
f
b
=
0
(3) if b=0
(3)ifb=0
t
h
e
n
then
then
(
4
)
r
e
t
u
r
n
(4)\quad return
(4)return
a
a
a
(
5
)
r
e
t
u
r
n
E
u
c
l
i
d
(
b
,
a
%
b
)
(5) return Euclid(b,a\%b)
(5)returnEuclid(b,a%b)
循环法:
(
1
)
w
h
i
l
e
(1)while
(1)while
b
!
=
0
b!=0
b!=0
(
2
)
c
=
a
%
b
(2)\quad \quad c=a\%b
(2)c=a%b
(
3
)
a
=
b
(3)\quad\quad a=b
(3)a=b
(
4
)
b
=
c
(4)\quad\quad b=c
(4)b=c
(
5
)
r
e
t
u
r
n
a
(5)return\quad a
(5)returna
2.证明或证否:
f
(
n
)
+
o
(
f
(
n
)
)
=
Θ
(
f
(
n
)
)
f(n)+o(f(n))=\Theta(f(n))
f(n)+o(f(n))=Θ(f(n))
证明:
∵
∀
g
(
n
)
∈
o
(
f
(
n
)
)
,
∀
c
>
0
,
∃
n
0
,
∀
n
>
n
0
,
0
≤
g
(
n
)
<
c
f
(
n
)
\because \forall g(n)\in o(f(n)),\forall c>0,\exist n_{0},\forall n>n_{0},0\le g(n)<cf(n)
∵∀g(n)∈o(f(n)),∀c>0,∃n0,∀n>n0,0≤g(n)<cf(n)
∴
∀
g
(
n
)
∈
o
(
f
(
n
)
)
,
∀
c
>
0
,
∃
n
0
,
∀
n
>
n
0
,
f
(
n
)
≤
g
(
n
)
+
f
(
n
)
<
(
c
+
1
)
f
(
n
)
\therefore \forall g(n)\in o(f(n)),\forall c>0,\exist n_{0},\forall n>n_{0},f(n)\le g(n)+f(n)<(c+1)f(n)
∴∀g(n)∈o(f(n)),∀c>0,∃n0,∀n>n0,f(n)≤g(n)+f(n)<(c+1)f(n)
令
c
1
=
1
,
c
2
=
c
+
1
令c_{1}=1,c_{2}=c+1
令c1=1,c2=c+1
则
∀
g
(
n
)
∈
o
(
f
(
n
)
)
,
∃
c
1
,
c
2
,
n
0
,
∀
n
>
n
0
,
c
1
f
(
n
)
≤
g
(
n
)
+
f
(
n
)
<
c
2
f
(
n
)
则\forall g(n)\in o(f(n)),\exist c_{1},c_{2},n_{0},\forall n>n_{0},c_{1}f(n)\le g(n)+f(n)<c_{2}f(n)
则∀g(n)∈o(f(n)),∃c1,c2,n0,∀n>n0,c1f(n)≤g(n)+f(n)<c2f(n)
∴
f
(
n
)
+
g
(
n
)
=
f
(
n
)
+
o
(
f
(
n
)
)
=
Θ
(
f
(
n
)
)
\therefore f(n)+g(n)=f(n)+o(f(n))=\Theta(f(n))
∴f(n)+g(n)=f(n)+o(f(n))=Θ(f(n))
3.证明:
Θ
(
f
(
x
)
)
+
O
(
g
(
x
)
)
=
O
(
m
a
x
(
f
(
x
)
,
g
(
x
)
)
)
\Theta(f(x))+O(g(x))=O(max(f(x),g(x)))
Θ(f(x))+O(g(x))=O(max(f(x),g(x)))
证明:
f
0
(
x
)
∈
Θ
(
f
(
x
)
)
,
∃
c
1
,
c
2
>
0
,
x
0
,
∀
x
>
x
0
,
c
1
f
(
x
)
≤
f
0
(
x
)
≤
c
2
f
(
x
)
f_{0}(x)\in \Theta(f(x)),\exist c_{1},c_{2}>0,x_{0},\forall x>x_{0},c_{1}f(x)\le f_{0}(x)\le c_{2}f(x)
f0(x)∈Θ(f(x)),∃c1,c2>0,x0,∀x>x0,c1f(x)≤f0(x)≤c2f(x)
g
0
(
x
)
∈
g
(
x
)
,
∃
c
>
0
,
x
1
,
∀
x
>
x
1
有
0
≤
g
0
(
x
)
≤
c
g
(
x
)
g_{0}(x) \in g(x), \exist c>0,x_{1},\forall x>x_{1}有0\le g_{0}(x) \le cg(x)
g0(x)∈g(x),∃c>0,x1,∀x>x1有0≤g0(x)≤cg(x)
∴
∃
c
1
,
c
2
,
c
>
0
,
x
2
=
m
a
x
(
x
0
,
x
1
)
,
∀
x
>
x
2
,
0
≤
c
1
f
(
x
)
≤
f
0
(
x
)
+
g
0
(
x
)
≤
c
2
f
(
x
)
+
c
g
(
x
)
\therefore \exist c_{1},c_{2},c>0,x_{2}=max(x_{0},x_{1}),\forall x>x_{2},0\le c_{1}f(x)\le f_{0}(x)+g_{0}(x)\le c_{2}f(x)+cg(x)
∴∃c1,c2,c>0,x2=max(x0,x1),∀x>x2,0≤c1f(x)≤f0(x)+g0(x)≤c2f(x)+cg(x)
令
c
3
=
m
a
x
(
c
,
c
2
)
令c_{3}=max(c,c_{2})
令c3=max(c,c2)
则
0
≤
f
0
(
x
)
+
g
0
(
x
)
≤
2
c
3
m
a
x
(
f
(
x
)
+
g
(
x
)
)
则0\le f_{0}(x)+g_{0}(x)\le 2c_{3}max(f(x)+g(x))
则0≤f0(x)+g0(x)≤2c3max(f(x)+g(x))
∴
Θ
(
f
(
x
)
)
+
O
(
g
(
x
)
)
=
O
(
m
a
x
(
f
(
x
)
,
g
(
x
)
)
)
\therefore \Theta(f(x))+O(g(x))=O(max(f(x),g(x)))
∴Θ(f(x))+O(g(x))=O(max(f(x),g(x)))
4.证明或给出反例:
Θ
(
f
(
n
)
)
∧
o
(
f
(
n
)
)
=
∅
\Theta(f(n))\land o(f(n))=\emptyset
Θ(f(n))∧o(f(n))=∅
证明:
f
0
(
x
)
∈
Θ
(
f
(
x
)
)
,
∃
c
1
,
c
2
>
0
,
n
0
,
∀
n
>
n
0
,
c
1
f
(
n
)
≤
f
0
(
n
)
≤
c
2
f
(
n
)
f_{0}(x)\in \Theta(f(x)),\exist c_{1},c_{2}>0,n_{0},\forall n>n_{0},c_{1}f(n)\le f_{0}(n)\le c_{2}f(n)
f0(x)∈Θ(f(x)),∃c1,c2>0,n0,∀n>n0,c1f(n)≤f0(n)≤c2f(n)
假设
f
0
(
n
)
∈
o
(
f
(
n
)
)
f_{0}(n)\in o(f(n))
f0(n)∈o(f(n))
∀
c
>
0
,
∃
n
1
,
∀
n
>
n
1
有
0
≤
f
0
(
n
)
<
c
f
(
n
)
\forall c>0,\exist n_{1},\forall n>n_{1}有0\le f_{0}(n) < cf(n)
∀c>0,∃n1,∀n>n1有0≤f0(n)<cf(n)
这与
c
1
f
(
n
)
≤
0
(
f
(
n
)
)
c_{1}f(n)\le 0(f(n))
c1f(n)≤0(f(n))矛盾
所以
f
0
(
n
)
∉
0
(
f
(
n
)
)
f_{0}(n)\notin 0(f(n))
f0(n)∈/0(f(n))
即
Θ
(
f
(
n
)
)
∧
o
(
f
(
n
)
)
=
∅
\Theta(f(n))\land o(f(n))=\emptyset
Θ(f(n))∧o(f(n))=∅
5.证明:设
k
k
k是任意常数正整数,则
l
o
g
k
n
=
o
(
n
)
log^kn=o(n)
logkn=o(n)
证明:
lim
n
→
∞
l
o
g
k
n
n
=
lim
n
→
∞
(
k
)
l
o
g
k
−
1
n
n
=
.
.
.
=
lim
n
→
∞
k
!
n
=
0
\lim_{n \to \infin}\frac{log^kn}{n}=\lim_{n \to \infin}\frac{(k)log^{k-1}n}{n}=...=\lim_{n \to \infin}\frac{k!}{n}=0
limn→∞nlogkn=limn→∞n(k)logk−1n=...=limn→∞nk!=0
所以
l
o
g
k
n
=
o
(
n
)
log^kn=o(n)
logkn=o(n)
6.证明:
l
o
g
n
!
=
Θ
(
n
l
o
g
n
)
logn!=\Theta(nlogn)
logn!=Θ(nlogn)
先证:
l
o
g
n
!
=
O
(
n
l
o
g
n
)
logn!=O(nlogn)
logn!=O(nlogn)
l
o
g
n
!
=
∑
i
=
1
n
l
o
g
(
i
)
≤
∑
i
=
1
n
n
=
n
l
o
g
n
=
O
(
n
l
o
g
n
)
logn!=\sum_{i=1}^n log(i)\le \sum_{i=1}^n n=nlogn=O(nlogn)
logn!=∑i=1nlog(i)≤∑i=1nn=nlogn=O(nlogn)
再证:
l
o
g
n
!
=
Ω
(
n
l
o
g
n
)
logn!=\Omega(nlogn)
logn!=Ω(nlogn)
∵
n
!
≥
(
n
/
2
)
n
/
2
\because n!\ge (n/2)^{n/2}
∵n!≥(n/2)n/2
∴
l
o
g
(
n
!
)
≥
l
o
g
(
(
n
/
2
)
n
/
2
)
=
(
n
/
2
)
l
o
g
(
n
/
2
)
=
(
n
/
2
)
l
o
g
(
n
)
−
(
n
/
2
)
l
o
g
(
2
)
\therefore log(n!)\ge log((n/2)^{n/2})=(n/2)log(n/2)=(n/2)log(n)-(n/2)log(2)
∴log(n!)≥log((n/2)n/2)=(n/2)log(n/2)=(n/2)log(n)−(n/2)log(2)
当
n
≥
4
时
,
(
n
/
2
)
l
o
g
(
2
)
=
(
n
/
4
)
l
o
g
(
4
)
≤
(
n
/
4
)
l
o
g
(
n
)
当n\ge 4时,(n/2)log(2)=(n/4)log(4)\le (n/4)log(n)
当n≥4时,(n/2)log(2)=(n/4)log(4)≤(n/4)log(n)
∴
l
o
g
(
n
!
)
≥
(
n
/
2
)
l
o
g
(
n
)
−
(
n
/
4
)
l
o
g
(
n
)
=
(
n
/
4
)
l
o
g
(
n
)
=
Ω
(
n
l
o
g
n
)
\therefore log(n!)\ge (n/2)log(n)-(n/4)log(n)=(n/4)log(n)=\Omega(nlogn)
∴log(n!)≥(n/2)log(n)−(n/4)log(n)=(n/4)log(n)=Ω(nlogn)
综
上
l
o
g
n
!
=
Θ
(
n
l
o
g
n
)
综上logn!=\Theta(nlogn)
综上logn!=Θ(nlogn)
7.解方程:
T
(
n
)
=
6
T
(
n
/
3
)
+
l
o
g
n
T(n)=6T(n/3)+logn
T(n)=6T(n/3)+logn
解:
令
n
=
2
m
,
则
令n=2^m,则
令n=2m,则
T
(
2
m
)
=
6
T
(
2
m
/
3
)
+
m
T(2^m)=6T(2^m/3)+m
T(2m)=6T(2m/3)+m
令
T
(
2
m
)
=
S
(
m
)
,
则
令T(2^m)=S(m),则
令T(2m)=S(m),则
S
(
m
)
=
6
S
(
m
/
3
)
+
m
S(m)=6S(m/3)+m
S(m)=6S(m/3)+m
S
(
m
)
=
6
S
(
m
/
3
)
+
m
=
36
S
(
m
/
9
)
+
6
m
/
3
+
m
=
.
.
.
=
6
k
S
(
m
/
3
k
)
+
m
/
3
k
−
1
+
.
.
.
+
m
=
(
令
m
=
3
k
)
6
k
S
(
1
)
+
6
k
−
1
m
/
3
k
−
1
+
.
.
.
+
m
=
6
k
+
3
∗
6
k
−
1
+
.
.
.
+
3
k
=
Θ
(
m
l
o
g
3
m
)
S(m)=6S(m/3)+m=36S(m/9)+6m/3+m=...=6^kS(m/3^k)+m/3^{k-1}+...+m=(令m=3^k)6^kS(1)+6^{k-1}m/3^{k-1}+...+m=6^k+3*6^{k-1}+...+3^k=\Theta(mlog_{3}m)
S(m)=6S(m/3)+m=36S(m/9)+6m/3+m=...=6kS(m/3k)+m/3k−1+...+m=(令m=3k)6kS(1)+6k−1m/3k−1+...+m=6k+3∗6k−1+...+3k=Θ(mlog3m)
T
(
n
)
=
Θ
(
l
o
g
3
m
l
o
g
l
o
g
3
m
)
T(n)=\Theta(log_{3}mloglog_{3}m)
T(n)=Θ(log3mloglog3m)
8.解方程
T
(
n
)
=
3
T
(
n
/
3
+
5
)
+
n
/
2
T(n)=3T(n/3+5)+n/2
T(n)=3T(n/3+5)+n/2
解:
令
n
=
m
+
15
/
2
,
则
令n=m+15/2,则
令n=m+15/2,则
T
(
m
+
15
/
2
)
=
3
T
(
m
/
3
+
15
/
2
)
+
m
/
2
+
15
/
4
T(m+15/2)=3T(m/3+15/2)+m/2+15/4
T(m+15/2)=3T(m/3+15/2)+m/2+15/4
令
T
(
m
+
15
/
2
)
=
S
(
m
)
,
则
令T(m+15/2)=S(m),则
令T(m+15/2)=S(m),则
S
(
m
)
=
3
S
(
m
/
3
)
+
m
/
2
+
15
/
4
S(m)=3S(m/3)+m/2+15/4
S(m)=3S(m/3)+m/2+15/4
S
(
m
)
=
Θ
(
m
l
o
g
m
)
S(m)=\Theta(mlogm)
S(m)=Θ(mlogm)
T
(
n
)
=
Θ
(
n
l
o
g
n
)
T(n)=\Theta(nlogn)
T(n)=Θ(nlogn)
9.解方程:
T
(
n
)
=
T
(
⌈
n
/
2
⌉
)
+
1
T(n)=T(⌈n/2⌉)+1
T(n)=T(⌈n/2⌉)+1
解:
T
(
n
)
=
T
(
⌈
n
/
2
⌉
)
+
1
=
T
(
⌈
n
/
4
⌉
)
+
1
+
1
=
T
(
⌈
n
/
8
⌉
)
+
1
+
1
+
1
=
T
(
⌈
n
/
2
i
⌉
)
+
i
T(n)=T(⌈n/2⌉)+1=T(⌈n/4⌉)+1+1=T(⌈n/8⌉)+1+1+1=T(⌈n/2^i⌉)+i
T(n)=T(⌈n/2⌉)+1=T(⌈n/4⌉)+1+1=T(⌈n/8⌉)+1+1+1=T(⌈n/2i⌉)+i
令
n
/
2
i
=
1
,
得
i
=
l
o
g
n
令n/2^i=1,得i=logn
令n/2i=1,得i=logn
则
原
式
=
T
(
1
)
+
l
o
g
n
=
O
(
l
o
g
n
)
则原式=T(1)+logn=O(logn)
则原式=T(1)+logn=O(logn)
10.解方程:
T
(
n
)
=
T
(
⌊
n
/
2
⌋
)
+
n
3
T(n)=T(⌊n/2⌋)+n^3
T(n)=T(⌊n/2⌋)+n3
解:
T
(
n
)
=
T
(
⌊
n
/
2
⌋
)
+
n
3
=
T
(
⌊
n
/
2
2
⌋
)
+
n
3
+
⌊
n
/
2
⌋
3
=
T
(
⌊
n
/
2
i
⌋
)
+
n
3
+
.
.
.
+
⌊
n
/
2
i
⌋
3
T(n)=T(⌊n/2⌋)+n^3=T(⌊n/2^2⌋)+n^3+⌊n/2⌋^3=T(⌊n/2^i⌋)+n^3+...+⌊n/2^i⌋^3
T(n)=T(⌊n/2⌋)+n3=T(⌊n/22⌋)+n3+⌊n/2⌋3=T(⌊n/2i⌋)+n3+...+⌊n/2i⌋3
令
n
/
2
i
=
1
,
则
i
=
l
o
g
2
n
令n/2^i=1,则i=log_{2}n
令n/2i=1,则i=log2n
∴
T
(
n
)
≤
∑
i
=
0
l
o
g
2
n
(
n
/
2
i
)
3
+
T
(
1
)
≤
n
3
∑
i
=
0
∞
(
1
/
8
)
i
=
O
(
n
3
)
\therefore T(n)\le \sum_{i=0}^{log_{2}n}(n/2^i)^3+T(1)\le n^3\sum_{i=0}^{\infin}(1/8)^i=O(n^3)
∴T(n)≤∑i=0log2n(n/2i)3+T(1)≤n3∑i=0∞(1/8)i=O(n3)
11.证明或证否:
如
果
f
(
n
)
=
O
(
g
(
n
)
)
,
那
么
2
f
(
n
)
=
O
(
2
g
(
n
)
)
如果f(n)=O(g(n)),那么2^{f(n)}=O(2^{g(n)})
如果f(n)=O(g(n)),那么2f(n)=O(2g(n))
否证:
令
f
(
n
)
=
3
n
,
g
(
n
)
=
n
,
则
f
(
n
)
=
O
(
g
(
n
)
)
,
但
是
2
f
(
n
)
≠
O
(
2
g
(
n
)
)
令f(n)=3n,g(n)=n,则f(n)=O(g(n)),但是2^{f(n)}\neq O(2^{g(n)})
令f(n)=3n,g(n)=n,则f(n)=O(g(n)),但是2f(n)=O(2g(n))
参考:哈工大算法设计与分析PPT