算法导论第三版,9.3-8
算法:
- 如果两个数组长度为1,选出较小的那个一个
- 否则,取出两个数组的中位数。
- 取有较大中位数的数组的低区和较低中位数数组的高区,组合成新的长度为n的数组。
- 找出新数组的中位数
思路:
既然用递归分治,一定有基本情况,基本情况就是数组长度为1.
观察会发现总的中位数介于两个数组的中位数之间。详细证明如下:
设总的中位数是 M ,
本文介绍了如何通过算法导论中的方法解决找出两个数组X和Y中所有2n个元素的中位数问题。首先考虑基本情况,即数组长度为1时的处理。然后,通过比较两个数组的中位数,将问题转化为求解新数组的中位数,新数组由较大中位数数组的低区和较小中位数数组的高区组合而成。通过递归分治策略,确保中位数始终位于新数组中。最后,给出了Python实现代码。
算法导论第三版,9.3-8
算法:
思路:
既然用递归分治,一定有基本情况,基本情况就是数组长度为1.
观察会发现总的中位数介于两个数组的中位数之间。详细证明如下:
设总的中位数是 M ,

被折叠的 条评论
为什么被折叠?