机器视觉 电子书:visual c++编程,大家帮帮忙啊

来源:百度文库 编辑:中科新闻网 时间:2024/05/06 09:55:00
设A和B是两个顺序表,其元素按从小到大的顺序排列。编写一个程序将A和B中相同元素组成一个新的从大到小的有序顺序表C的算法,并分析算法的时间复杂度。
请完整的帮我编写一下,谢谢了大家

方法有多种,最简单的一种如下:

void HeCheng(List a, List b, list &c) {
Initlist(c); //初始c表,当然你也可以自己定义一个c表
int i = 1, j = 1;
int k = 0;
int vaule1, vaule2;
int a_len = listlength(a);
int b_len = listlength(b); //如果数组的话,可以考虑用sizeof()函数计算其长度
while((i <= a_len) && (j <= b_len)) {
Getelem(a, i, value1); //用value1返回a中第i个元素的值,函数很简单
Getelem(b, i, value2); //用value2返回b中第i个元素的值,函数很简单
if(value1 <= value2) {
listInsert(c, ++k, value1);
++i;
}
else {
listInsert(c, ++k, value2);
++j;
}
} //判断大小后插入到c中
while(i <= a_len) {
Getelem(a, i, value1);
listInsert(c, ++k, value1);
}
while(j <= b_len) {
Getelem(b, i, value2);
listInsert(c, ++k, value2);
} //插入剩余元素
}

算法的时间复杂度为O(a_len + b_len)

if a>b