编写一个将A和B中相同元素组成一个新的从小到大的有序顺序表C的算法,分析算法的时间复杂度

其中A和B都是有序的顺序表,都是从小到大的顺序排列的。虽然我懂的程序的编程思想,可我不知道该从何处下手分析时间复杂度,能否给我编一个程序,并结合程序进行详细的分析。

int MergeList_Sq(SqList La,SqList Lb,SqList &Lc)
{
//非递减顺序表La,Lb合并成非递减顺序表Lc

ElemType *pa,*pb,*pc,*pa_last,*pb_last;

pa=La.elem;
pb=Lb.elem;

Lc.length=Lc.listsize=La.length+Lb.length;
//为Lc分配空间
pc=Lc.elem=(ElemType *)malloc(Lc.listsize*sizeof(ElemType));
if(!Lc.elem) exit(1);

pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;

//合并La和Lb 为Lc
while((pa<=pa_last) && (pb<=pb_last))
{
if (*pa=*pb) *pc++=*pa++;
}
return 1;
}

-----------------------------------------------------------

时间复杂度为O(La.length+Lb.length)
温馨提示:答案为网友推荐,仅供参考
相似回答