第章 线性表(3.4).ppt

图2.4 顺序表中删除元素 例如:线性表(4, 9, 15, 21, 28, 30, 30, 42, 51, 62)删除第5个元素,则需将第6个元素到第10个元素依次向前移动一个位置,如图2.4所示。 算法描述: Status ListDelete_Sq(SqList L,int i,ElemType e){ if( (i1) || (iL.length) ) return ERROR; p=(L.elem[i-1]); e=*p; q=L.elem+L.length-1; for(++p; p=q; ++p) *(p-1)=*p; --L.length; return OK; } 时间效率分析: 插入算法花费的时间,主要在于循环中元素的后移 当插入位置为1时,需n次移动; 当插入位置为n+1时,不需移动元素; 当插入位置为i时,移动次数为n-i+1。 假定在表中任意位置插入元素都是等概率的,在第i个位置上插入元素的概率p(i)=1/(n+1) 插入操作时间效率(平均移动次数) 删除操作时间效率(平均移动次数) 删除算法花费的时间,主要在于循环中元素的前移 当删除位置为1时,需n-1次移动; 当删除位置为n时,不需移动元素; 当删除位置为i时,移动次数为n-i。 假定在表中任意位置删除元素都是等概率的,则删除第i个位置上元素的概率q(i)=1/n 5

文档评论(0)

1亿VIP精品文档

相关文档