已知长度为n的线性表A采用顺序存储结构,写一时间效率有效的算法,删除数据元素[x,y]之间的所有元素。

来源:百度知道 编辑:UC知道 时间:2024/06/01 08:40:33
时间效率较高是什么意思呢?能否帮忙解释下,谢谢
算法具体是怎么写呢

若每个节点的值在[x,y]之间就删除,顺序表无序:
bool delete_x_to_y(Seqlist &L,DataType x,DataType y){
if(L.n==0||x>=y)return false;//空表或x>y的返回false
int i,j;
for(i=L.n-1;i>=0;i--)
if(L.data[i]>=x&&L.data[i]<=y)//满足条件
{for(j=i+1;j<L.n;j++)L.data[j-1]=L.data[j]//删除后后面的元素都向前移一位
L.n--;
}
return ture;//删除成功,返回ture

时间复杂度为O(n^2)

比较而言,完成相同的任务,所需要的运算次数越少,效率就越高。
比如排序算法中,冒泡法效率低,合并排序效率高。

数据结构一直 没有学好 郁闷呢 你要加油啊