顺序表 | 根据两个有序表查找合并后的中位数

王道 P18 T11 :

写的O(n)的代码:

int get_midNum_of_mergedList(int a[],int an,int b[],int bn){
    int mid=(an+bn)/2-1;
    int i,j,k;
    for(i=0,j=0,k=0;i<an && j<bn;k++){
        if(a[i]<b[j]){
            if(k==mid) return a[i];
            i++;
        }else{
            if(k==mid) return b[j];
            j++;
        }
    }
    while(i<an){
        if(k==mid) return a[i];
        i++,k++;
    }
    while(j<bn){
        if(k==mid) return b[j];
        j++,k++;
    }
}

 

posted @ 2017-12-26 16:05  TQCAI  阅读(365)  评论(0编辑  收藏  举报