顺序表的基本运算算法:
1.插入算法:
for(j=L->length;j>i;j--)
L->data[j]=L->data[j-1];//将data[i..n-1]元素后移一个位。
L->data[j]=e; //插入元素e
对于本算法来说,元素移动的次数不仅与表长L->length=n有关,还与插入位置i有关
*当i=n+1时,移动次数为0;—>算法最好时间复杂度为o(1)
*当i=1时,移动次数为n,达到最大值。—->算法最坏时间复杂度为o(n)
2.删除数据元素
for(j=i;j<L->length-1;j++)
L->data[j]=L->data[j+1];//将data[i..n-1]元素前移
L->length--; //顺序表长度 减1
对于本算法来说,元素移动的次数也与表长n和删除元素的位置i有关
*当i=n时,移动次数为0;—->删除算法最好时间复杂度为o(1)
*当i=1时,移动次数为n-1;—–>删除算法最坏时间复杂度为o(n)