21、算法练习与分治策略深度解析

算法练习与分治策略深度解析

1. 中位数相关问题
  • 寻找最接近中位数的 k 个数 :给定一个包含 n 个不同数字的数组 A 和正整数 k(k ≤ n),需要设计算法找出 A 中最接近中位数的 k 个数。
  • 两个有序数组的中位数 :对于两个有序数组 A[1..n] 和 B[1..n],要设计算法找出这 2n 个元素的中位数,并分析其运行时间。
  • 快速排序以中位数为枢轴的比较次数 :若快速排序总是选择中位数元素作为枢轴,分析在最坏情况下的比较次数。
2. 整数乘法问题
2.1 递归乘法算法

以下是一个递归算法来计算两个数 u 和 v 的乘积:

Multiply(u, v):
(1) Assume n = length(u) = length(v), can pad 0’s for shorter number
(2) if length(u) and length(v) = 1 then return u × v
(3) Partition u,v into u = x × 10 n/2 + y and v = w × 10n/2 + z
(4) A = Multiply(x, w)
(5) B = Multiply(y, w)
(6) C = Multiply(x, z)
(7) D = Multiply(y, z)
(8) Return A × 10n + (B + C) × 10 n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值