编写一个算法,实现以较高的效率从有序顺序表A中删除其值在x和y之间x≤A[i]≤y的所有元素。

admin2012-06-21  85

问题 编写一个算法,实现以较高的效率从有序顺序表A中删除其值在x和y之间x≤A≤y的所有元素。

选项

答案逐个检测顺序表中值在x和y之间的元素,并计数于k,再将其值大于y的元素向前移动k个元素。算法描述如下: void DeleteXY(SList*la,int x,int y) { int k=0: for(int i=0;i<a->size;i++) { if(a->data[i]>=x&&a->data[i]<=y) k++; else a->data[i-k]=a->data[i]; } a->n=a->n-k; }

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

最新回复(0)