概述
基本的插入算法
<1>理论分析:
(1)入口判断(1.容量是否充足;2.插入位置是否合理)。
(2)后移,即a[i]-a[n]全部后移。
(3)插入新元素。
(4)表长加一。
<2>算法描述:
(1)
if(L.n==MAXSIZE) error("溢出错误");
if(i<1||i>L.n+1) error("插入位置错误");
(2)
for(j=n;j>=i;j--)
L.a[j+1]=L.a[j];
(3)
L.a[i]=x;
(4)
n++;
<3>算法设计:
#define MAXSIZE 100
typedef struct{
ElemType a[MAXSIZE+1];
int n;
}sqlit;
void sq_ins(sqlit &L,int i;ElemType x){
int j;
if(L.n==MAXSIZE) error("溢出错误");
else if(i<1||i>L.n+1) error("插入位置错误");
else { for(j=n;j>=i;j--)
L.a[j+1]=L.a[j];
L.a[i]=x;
L.n++;
}
}
<4>算法分析:
插入算法的的执行时间与元素的插入位置,即元素的移动位置有关;
插入位置越靠前测移动次数越多,效率也就越低。
假设:在任意处插入一个元素的概率相同
则
时间复杂度T(n)=O(n)
启示:如果线性表无序,在表未插入时效率最高
最后
以上就是爱撒娇含羞草为你收集整理的线性表的插入算法基本的插入算法的全部内容,希望文章能够帮你解决线性表的插入算法基本的插入算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复