浙大版《数据结构学习与实验指导(第2版)》题目集
进阶实验1-3.1 两个有序序列的中位数 (25 分)
类二分法思路:每次比较两个数组的中位数的值,小的数组在中位数左边去掉k个数,大的数组在中位数
右边去掉k个数,产生两个新数组,并且它们长度保持一致。产生新数组通过修改左右下标界限实现。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int N;
scanf("%d", &N); //数据规模输入
int* A = (int*)malloc(N * sizeof(int)); //开辟动态空间,因为是N最大为1e5,所以不用自动内存栈可能不够大,不用动态的堆的话就要定义在静态区,但不用动态空间在最大N时运行很慢
int*