中位数
void find_mide(int a[],int b[],int n){
int temp;
int i=0,j=0,k=0;
while (i<n && j<n){
if(a[i]<b[j]){
temp=a[i];
cout<<"temp:"<<temp<<endl;
i++;
k++;
}
if(a[i]>=b[j]){
temp=b[j];
cout<<"temp:"<<temp<<endl;
j++;
k++;
}
cout<<"k:"<<k<<endl;
if(k>=n){
break;
}
}
cout<<"temp:"<<temp<<endl;
}
思路:设置两个指针i,j分别用于指向两个数组,将两个数组的值两两比较,较小的向后移动一位。
课本的思路:
分别求A,B的中位数,设为a,b比较a,b
a=b 中位数为a;
a<b A舍弃较小的一半,B舍弃较大的一半
a>b A舍弃较大的一半,B舍弃较小的一半
循环执行
(两个数组的中位数只会在a和b之间出现,所以小的舍弃小的那部分,大的舍弃大的那部分,重复执行即可舍弃n个数据,n指的是数组长度)

浙公网安备 33010602011771号