算法导论 思考题 4-6

本文探讨了Monge阵列的数学归纳法验证过程,包括行与列的归纳步骤,并介绍了如何调整阵列元素以满足特定条件。进一步讨论了在给定条件下寻最小元素的高效算法及时间复杂度分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a. 对行列做数学归纳。 

    行:假设 A[i,j]+A[i+1,j+1] <= A[i,j+1] +A[i+1,j]

                     A[i,j+1]+A[i+1,j+2] <= A[i+1,j+1]+A[i,j+2]

            则 A[i,j]+A[i+1,j+2]  <=A[i+1,j]+A[i,j+2]

    列:和上面差不多

b.第二行第3列7改成2就行了

c.如果f(i)>f(i+1),那么A[i,f(i+1)]+A[i+1,f(i)]>A[i,f(i)]+A[i+1,f(i+1)],因为A[i,f(i)]和A[i+1,f(i+1)]分别为那一行最小元素,就不符合Monge条件了

d.设i为奇数,在确定第i-1和i+1行最小元素位置之后,只要在f(i-1)和f(i+1)之间寻找最小元素即可。

    f(2),f(4),f(6)……之间的距离和为n,再加上每次循环奇数行,共m/2,所以时间复杂度一共是n+m/2,即O(m+n)

e. T(m,n)=T(m/2,n)+m+n 

     递归树一共lgm+1层,每层一个元素,代价n+m/2i,最后一层代价O(1)

     T(m,n)=∑(n+m/2i)=O(m+nlgm)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值