自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 3-4

a错误 n=O(n2),n2≠O(n)n=O(n^2),n^2\neq O(n) b错误 n+n2≠Θ(n)n+n^2\neq\Theta(n) c正确 f(n)=O(g(n)),则∃c,n0使得当n≥n0时,f(n)≤cg(n)f(n)=O(g(n)),则\exists c,n_0使得当n\geq n_0时,f(n)\leq cg(n) 故lg(f(n))≤lg(g(n))+lgc≤(

2015-05-30 16:05:10 186

原创 3-3

这题真麻烦。。。 从最小的常数开始 排序如下: 等价类 成员 1 1,n1/lgn1,n^{1/lgn} 2 lg(lg∗n)lg(lg^*n) 3 lg∗(lgn)lg^*(lgn) 4 2lg∗n2^{lg^*n} 5 lnlnn\ln\ln n 6 lgn‾‾‾‾√\sqrt {\lg n} 7 lnn\ln n 8 l

2015-05-30 15:37:23 204

原创 3-2

A B OO oo Ω\Omega ω\omega Θ\Theta lgknlg^kn nεn^\varepsilon 是 是 否 否 否 nkn^k cnc^n 是 是 否 否 否 n‾‾√\sqrt n nsinnn^{\sin n} 否 否 否 否 否 2n2^n 2n/22^{n

2015-05-30 15:03:33 238

原创 3.2-7

5‾‾√(Fi+2−ϕi)=ϕi⋅ϕ2−(1−ϕ)i+2−5‾‾√ϕi\sqrt5(F_{i+2}-\phi^i)=\phi^i\cdot \phi^2-(1-\phi)^{i+2}-\sqrt5\phi^i =ϕi⋅(1−ϕ)2−(1−ϕ)i+2=(1−ϕ)2⋅(ϕi−(1−ϕ)i)=\phi^i\cdot (1-\phi)^2-(1-\phi)^{i+2}=(1-\phi)^2\cdot (\

2015-05-30 14:34:52 193

原创 3.2-6

当n=0时F0=0F_0=0显然成立 当n=1时F1=1F_1=1显然成立 假设当n≤kn\leq k时有Fk=ϕk−ϕ̂ k5√F_k=\frac{\phi ^k-\hat\phi^k}{\sqrt5} 则当n=k+1时,Fk+1=Fk+Fk−1=ϕk−ϕ̂ k+ϕk−1−ϕ̂ k−15√F_{k+1}=F_k+F_{k-1}=\frac{\phi ^k-\hat\phi^k+\phi ^{

2015-05-30 14:04:00 200

原创 3.2-5

若我们令t=lg∗nt=lg^*n,则lg(lg∗n)=lgt,lg∗(lgn)=t−1lg(lg^*n)=lgt,lg^*(lgn)=t-1 故容易看出后者渐近上更大

2015-05-30 13:14:30 235

原创 3.2-4

f(n)多项式有解即存在c1,c2,n0使得n>=n0时有f(n)多项式有解即存在c_1,c_2,n_0使得n>=n_0时有 c1nk≤f(n)≤c2nk成立,即lgc1+klgn≤lgf(n)≤lgc2+klgnc_1n^k\leq f(n) \leq c_2n^k成立,即lgc_1+klgn\leq lgf(n) \leq lgc_2+klgn 故lgf(n)=Θ(lgn)lgf(n)=\T

2015-05-30 13:11:21 311

原创 3.2-3

不进行特别严格的数学分析∵32πn√en单调减趋近于0的\because\frac{3\sqrt{2\pi n}}{e^n}单调减趋近于0的 ∴∀c>0,总能找到正整数n0使得,32πn√en<c\therefore \forall c>0,总能找到正整数n_0使得,\frac{3\sqrt{2\pi n}}{e^n}<c ∴∀c>0,∃n0,使得n!<32πn√ennn<cnn\therefo

2015-05-30 12:28:20 213

原创 3.2-2

logb(1/a)=logb(a−1)=−logbalog_b(1/a)=log_b(a^{-1})=-log_ba logba=logaalogab=1logablog_ba=\frac{log_aa}{log_ab}=\frac{1}{log_ab} alogbc=clogca⋅logbc=clogbaa^{log_bc}=c^{log_ca\cdot log_bc}=c^{log_ba}

2015-05-30 11:04:28 179

原创 3.2-1

∵f(n)单调增\because f(n)单调增 ∴∀m,n,m<=n,有f(m)≤f(n)\therefore \forall m,n,m<=n,有f(m)\leq f(n) ∵g(n)单调增\because g(n)单调增 ∴∀m,n,m<=n,有g(m)≤g(n)\therefore \forall m,n,m<=n,有g(m)\leq g(n)∀m,n,m<=n\forall m,n,

2015-05-30 10:59:33 201

原创 3.1-8

题目有点问题,c不应该是整数 Ω(g(n,m))={f(n,m):∃c>0,正整数n0和m0,使得对所有的n≥n0,m≥m0,有0≤cg(n,m)≤f(n,m)}\Omega(g(n,m))=\{f(n,m):\exists c>0,正整数n_0和m_0,使得对所有的n\geq n_0,m\geq m_0,有0\leq cg(n,m)\leq f(n,m)\} Θ(g(n,m))={f(n,m)

2015-05-30 10:34:01 277

原创 3.1-7

若存在f(n),使得f(n)∈o(g(n))∩ω(g(n)),则∃n1,n2有若存在f(n),使得f(n)\in o(g(n))\cap \omega (g(n)),则\exists n_1,n_2有 f(n)<12g(n)(n≥n1),f(n)>g(n)(n≥n2)f(n)< \frac12g(n)(n\geq n_1),f(n)> g(n)(n\geq n_2) 注意:第二版教材用的仍是≥,

2015-05-30 10:19:42 234

原创 3.1-6

充分性: ∵Tworst=O(g(n))\because T_{worst}=O(g(n)) ∴∃c1,n1,使得当n≥n1时,Tworst≤c1g(n)\therefore \exists c_1,n_1,使得当n\geq n_1时,T_{worst}\leq c_1g(n) 同理∃c2,n2,使得当n≥n2时,Tbest≥c2g(n)同理\exists c_2,n_2,使得当n\geq n

2015-05-30 09:58:32 253

原创 3.1-5

充分性: ∵f(n)=O(g(n))\because f(n)=O(g(n)) ∴∃c1,n1,使得当n≥n1时,有f(n)≤c1g(n)\therefore \exists c_1, n_1,使得当n\geq n_1时,有f(n)\leq c_1g(n) ∵f(n)=Ω(g(n))\because f(n)=\Omega(g(n)) ∴∃c2,n2,使得当n≥n2时,有f(n)≥c2g(n

2015-05-29 23:07:12 226

原创 3.1-4

∵令c1=3,n0=1,则\because 令c_1=3,n_0=1,则 2n+1<=c12n,对n≥n0成立2^{n+1}<=c_12^n,对n\geq n_0成立 ∴2n+1=O(2n)\therefore 2^{n+1}=O(2^n)∵∀正常数c,总是存在n0=lgc使得当n≥n0时有22n≥c2n\because \forall 正常数c ,总是存在n_0=lgc使得当n\geq n_0

2015-05-29 22:56:49 243

原创 3.1-3

至少反映的是大于等于关系,O反映的是小于等于关系,合在一起没有意义

2015-05-29 22:37:53 304

原创 3.1-2

∵12(1+an)b<=(1+an)b<=2b(当n>=a)\because \frac12(1+\frac an)^b<=(1+\frac an)^b<=2^b (当n>=a) ∴令c1=12(1+an)b,c2=2b,n0=a,有\therefore 令c_1 = \frac12(1+\frac an)^b, c_2=2^b,n_0=a,有 c1nb<=(n+a)b<=c2nb,在n≥n0时

2015-05-29 22:33:09 214

原创 3.1-1

∵f(n)+g(n)2<=max(f(n),g(n))<=f(n)+g(n)\because\frac{f(n)+g(n)}{2}<=max(f(n), g(n))<=f(n)+g(n) ∴max(f(n),g(n))=Θ(f(n)+g(n))\therefore max(f(n), g(n))=\Theta(f(n)+g(n))

2015-05-29 22:15:45 281

原创 2-4

问题a 逆序对为(2,1),(3,1),(8,6),(8,1),(6,1)问题b 当这个数组按照从大到小排序时,逆序对最多为 s=(n−1)(1+(n−1))2=n(n−1)2s=\frac{(n-1)(1+(n-1))}{2}=\frac{n(n-1)}{2}问题c 应当成正比关系 插入排序的时间开销主要在数组的移动上,每移动一次就意味着将一个逆序对变为顺序对,故逆序对的个数与移动次数成

2015-05-29 20:55:55 214

原创 2-3

问题a: i从n循环到0,所以复杂度为Θ(n)\Theta(n)问题b:y=0for i = 0 to n a = a[i] for j = 1 to i a = a * x y = y + a时间复杂度为Θ(n2)\Theta(n^2)问题c: 初始i=n,y=0成立 循环:第t步开始前y=∑n−(t+1)k=0ak+t+1xky=\sum_

2015-05-29 19:16:16 183

原创 2-1

问题a: 对于长度为k的数组插入排序,时间复杂度为Θ(k2)\Theta(k^2),n/k个数组的复杂度为Θ(n/k⋅k2)=θ(nk)\Theta(n/k \cdot k^2)=θ(nk) 问题b: 递归树的层数为Θ(lg(n/k))\Theta(lg(n/k)),每一次合并代价均为Θ(n)\Theta(n)(与标准merge没区别)故复杂度为Θ(nlg(n/k))\Theta(nlg(n/

2015-05-29 19:05:47 263

原创 2-2

问题a: 我们还需说明A’是A中所有元素的一种排列问题b: 证明第二个循环的不变式 每一次循环开始时,A[j]是A[j…n]中最小的 初始化:j=n显然成立 保持:上一次循环开始时,A[j+1]是A[j+1…n]中最小的,循环结束后,A[j]小于A[j+1],所以A[j]是A[j…n]中最小的 结束:结束时A[i]是A[i…n]中最小的问题c: 第一个循环的不变式 每一次循环开始时A

2015-05-29 19:05:36 130

原创 2.3-7

不考虑hash算法 代码戳这里算法如下: 1.先对数组A从小到大排序 2.令left为0,right为n-1(n为A长度) 3.若left == right 返回失败,否则检查A[left]+A[right]是否等于x,若等于则返回成功,否则若小于x,则left++,若大于x,则right–,然后重复步骤3证明: 若本身无解,算法显然会返回失败若有解,我们总能找到一组解(a,b),b-a是

2015-05-29 18:58:41 235

原创 2.3-6

不能 虽然可以减少查询对应位置的时间,但为了把元素置入对应位置,需要将其后的元素顺次后移,开销为Θ(n)\Theta(n)无法减少,所以复杂度仍为Θ(n2)\Theta(n^2)

2015-05-29 18:55:17 204

原创 2.3-5

最坏情况下,每一次查询都没有命中,每一次查询都将查找区间变为原来的一半 故T(n)=T(n/2)+Θ(1)T(n)=T(n/2) + \Theta(1),求解可得T(n)=Θ(lgn)T(n)=\Theta(lgn) 代码戳这里这里写链接内容

2015-05-29 18:53:26 252

原创 2.3-4

代码戳这里时间递归式为 T(1)=Θ(1)T(1) = \Theta(1) T(n)=T(n−1)+Θ(n)T(n) = T(n-1) + \Theta(n)

2015-05-29 18:50:39 183

原创 2.3-3

我们令k = lgn,则对k进行归纳 当k=1时,T(2)=2成立 当k=2时,T(4) = 8=2(22)2(2^2)成立 当k=m(m>2)时,假设T(2m)=m(2m)T(2^m)=m(2^m) 则当k=m+1时, T(2m+1)=2T(2m)+2m+1=(m+1)2(m+1)T(2^{m+1})=2T(2^m)+2^{m+1}=(m+1)2^{(m+1)} 故由数学归纳法,对于一

2015-05-29 18:48:59 275

原创 2.2-4

在最开始时对输入数据先进行检验,如果已经是最优结果就直接输出

2015-05-29 18:42:46 213

原创 2.3-2

伪代码就不写了,直接上C++代码戳这里

2015-05-29 18:42:39 249

原创 2.2-3

平均情况下检查次数为n(n+1)2n=(n+1)2\frac{n(n+1)}{2n} = \frac{(n+1)}{2} 最坏情况下查找次数为n次 故复杂度均为Θ(n)\Theta(n)

2015-05-29 18:39:51 242

原创 2.2-3

平均情况下检查次数为n(n+1)2n=(n+1)2\frac{n(n+1)}{2n} = \frac{(n+1)}{2} 最坏情况下查找次数为n次 故复杂度均为Θ(n)\Theta(n)

2015-05-29 17:21:52 313

原创 2.2-3

平均情况下检查次数为n(n+1)2n=(n+1)2\frac{n(n+1)}{2n} = \frac{(n+1)}{2} 最坏情况下查找次数为n次 故复杂度均为Θ(n)\Theta(n)

2015-05-29 17:21:03 246

原创 2.2-2

SELECTION-SORT(A) for i =1 to A.length-1 min = i for j = i+1 to A.length if(A[i] > A[j]) min = j tmp = A[i] A[i] = A[min]

2015-05-29 16:42:07 207

原创 2.2-1

最高项是n3n^3,所以是Θ(n3)\Theta(n^3)

2015-05-29 16:35:56 274

原创 2.1-4

形式化描述: 给定长度均为n的bool数组A与B,分别代表整数A`和B`的二进制表示(数组从左到右为数的高位到低位)。求一个n+1位的bool数组C,使得C代表的整数C`=A`+B` 伪代码如下ADD(A, B) C = new bool[A.length+1] carry = false for i = 1 to A.length C[i] = (A[i

2015-05-29 16:32:53 229

原创 2.1-3

LINEARSEARCH(A, v) for i = 1 to A.length if v == A[i] return i return NIL我们来证明第k次循环结束后,v==A[k]或v不在A[1…k]中 初始化:当k=1时,A[1]为空,要么v==A[1]要么v≠A[1]。满足 保持:在第k次循环中,若v==A[k]则得证,若v≠A[k],由于A[

2015-05-29 16:31:01 190

原创 2.1-2

INSERTION-SORT(A) for j=2 to A.length key = A[j] i = j - 1 while i > 0 and A[i] < key A[i+1] = A[i] i = i-1 A[i+1] = key

2015-05-29 16:27:48 242

原创 2.1-1

算法导论习题

2015-05-29 16:24:16 226

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除