其他分享
首页 > 其他分享> > 线性表元素的区间删除

线性表元素的区间删除

作者:互联网

简单动脑子,想了个n^2的,结果超时了

然后请教舍友,桥神给了我个o(n)的算法

如下

j对数组进行扫描,i对数组进行覆盖,找到符合要求的元素直接在原数组上进行覆盖即可,只需扫描一次数组。

List Delete( List L, ElementType minD, ElementType maxD ){
    int i,j;
    for(i=-1,j=0;j<=L->Last;j++) if(L->Data[j]<=minD||L->Data[j]>=maxD) L->Data[++i]=L->Data[j];
    L->Last=i;
    return L;
}

 我倒是想了个类似的,也是o(n),不过比这麻烦些

还是对数组扫描,找到一个不合适的数,从这开始的数就往前挪一个,找到两个,从第二个起开始挪两个,依次类推,也只需要扫描一次数组

标签:线性表,删除,List,元素,扫描,数组,ElementType,Data,maxD
来源: https://www.cnblogs.com/lwind/p/15426539.html