2.2.3-7

将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表

解析:有序顺序表,值是按照大小顺序排列,每次比较时是找当前两个表中首个未比较的元素比较,小的插入到第三个表中,最后,当其中一个表比较完后,结束比较,将剩余的元素插入第三表中

//将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表
void combine(Sq s1,Sq s2,Sq &s3){
    int i=0;
    int j=0;
    int k=0;
    while(i<s1.length && j<s2.length){
        if(s1.A[i]<s2.A[j]){
            s3.A[k++]=s1.A[i++];
        }else{
            s3.A[k++]=s2.A[j++];
        }
    }
    while(i<s1.length){
        s3.A[k++] = s1.A[i++];
    }
    while(j<s2.length){
        s3.A[k++] = s1.A[j++];
    }
    s3.length=k;
}

猜你喜欢

转载自www.cnblogs.com/qing-mo/p/10917131.html
今日推荐