问答题 顺序结构线性表LA与LB的结点关键字为整数。LA与LB的元素按非递减有序,线性表空间足够大。试用类Pascal语言给出一种高效算法,将LB中元素合并到LA中,使新LA的元素仍保持非递减有序。高效指最大限度地避免移动元素。【北京工业大学1997一、2(12分)】
【正确答案】正确答案:顺序表的插入的时间复杂度为O(n),平均移动近一半的元素。设两线性表的长度各为m和n,应从线性表的最后一个元素开始比较,大者放到最终位置上。核心语句片段如下: k=m+n一1;i=m—1;j=n一1; //i,j,k分别为线性表LA,LB和结果线性表的工作指针(下标) while(i>=0&&j>=0) if(LA[i]>=LB[j]j LA[k一一]=LA[i一一];else LA[k—一]=LB[j一一]; while(j>=0)LA[k—一]=LB[j一一];
【答案解析】