编写一个函数,从给定的顺序表A中删除元素值在x到y(x≤y)之间的所有元素,要求以较高的效率实现。

admin2014-12-25  18

问题 编写一个函数,从给定的顺序表A中删除元素值在x到y(x≤y)之间的所有元素,要求以较高的效率实现。

选项

答案本题的算法思想是:从0开始扫描顺序表L,用k记录下元素值在X到Y之间的元素个数,对于不满足该条件的元素,前移k个位置。这种算法的时间复杂度为O(n),其中n为顺序表的长度。实现本题功能的函数如下: void delxy(SqList&A,int x,int y) { int i=0: int k=0; while(i=x&&A.data[i]<=y) /*k记录被删除记录的个数*/ k++; A.data[i—k]=A.dab[i]; /*前移k个位置*/ i++; } A.length一=k: }

解析
转载请注明原文地址:https://kaotiyun.com/show/wiVx777K
0

最新回复(0)