本文最后更新于749 天前,其中的信息可能已经过时,如有错误请发送邮件到zzy1173071230@gmail.com
已知两个有序表A[0…n-1]和B[0…m-1],试写一算法,将他们归并为一个有序表C[0…m+n-1]。
#define Maxsize (m + n)
typedef int ElenType;
typedef struct {
ElenType data[Maxsize];
int length;
} Sqlist;
bool Merge(Sqlist A, Sqlist B, Sqlist &C) {
if (A.length + B.length > C.Maxsize)
return false;
int i = 0, j = 0, k = 0;
while (i < A.length && j < B.length) {
if (A.data[i] <= B.data[j])
C.data[k++] = A.data[i++];
else
C.data[k++] = B.data[j++];
}
while (i < A.length)
C.data[k++] = A.data[i++];
while (j < B.length)
C.data[k++] = B.data[j++];
C.length = k;
return true;
}