**Median of Two Sorted Arrays
有向箭头"A -> B"代表 "A > B",图中黑点为元素(quick-select 分组出来的,不是排序),白点为分组中位数,阴影部分元素,都一定比 x 大。
这个算法的核心思想是,每次可以扔掉 A 或 B 里面,较小的那 k / 2 个数,使得 A 与 B 的剩余搜索范围单调向右,而 k 指数缩小。
复杂度 O(log k),k = (m + n) / 2
时间复杂度:m 个数组,假如每个数组元素平均为 n,总共有 m*n 个元素,中位数要找 mn/2 小的元素,heap size 最大为 m
因此 O(mn * log(m))
Last updated