一个长度为 L( L≥1)的升序序列 S, 处在第 L/2个位置的数称为 S 的中位数。例如,若序列 S1=( 11, 13, 15, 17, 19),则 S1 的中位数是 15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若 S2=( 2, 4, 6, 8, 20),则 S1 和 S2 的中位数是 11。现有两个等长的升序序列 A 和 B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列 A 和 B的中位数。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用 C 或 C++或 Java 语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。