题目:有两个有序数组,两个数组中可能会有相同的数字,求出两个数组中中间大小的数字。要求写出思路及算法。(即查找中位数) #include <iostream> using namespace std; int main(void) { int numn,numm; cin>>numn>>numm;//两个数组的长度 int *n = new int[numn]; int *m = new int[numm]; int i,j,flag=0,mid = (numn+numm)/2,temp; for(i=0;i<numn;i++) cin>>n[i]; for(j=0;j<numm;j++) cin>>m[j]; for(i=-1,j=-1;;)//第(numn+numn)/2+1大的数 { temp = flag; if(n[i+1]<m[j+1]) { i++; flag = n[i]; } else { j++; flag = m[j]; } if(i+j+2>mid) break; } if((numn+numm)%2!=0) cout<<flag<<endl; else { flag += temp; cout<<(float)(flag/2)<<endl; } return 0; }