试写一算法,将X插入到线性表的适当位置上,以保证线性包的有序性

来源:百度知道 编辑:UC知道 时间:2024/09/22 08:34:00
设线性表存放在向量A[arrsize]的前num个分量中,且递增有序。试写一算法,将X插入到线性表的适当位置上,以保证线性包的有序性
并且分析算法的时间复杂度

可用折半插入法。
先找到插入的位置,然后再做插入操作。
数组的插入操作比较麻烦,要大量移动。
链表的插入最简单。

折半插入法:
先找中间,看大还是小,如果小就在前一半继续找,否则就在后一半找。
用递归函数就更方便了。复杂度应该为 Log2(N)
令 Start=0 End=num
每次取 Middle = (Start+End)/2
if (X > A[Middle]) then
Start = Middle
else if (X < A[Middle])
End = Middle
else
return Middle

数据结构书中应该有将这种方法。