实现过程:从0开始扫描线性表,用k记录值在x和y之间的元素个数,如果不满足条件,则执行移动元素操作data[i-k]=data[i],最后修改线性表长度len=i-k,时间复杂度为o(n).
线性表实现:
const int MAX(30); typedef struct SList{ int data[MAX]; int len; }SList;
|
void move(SList &L){ int i = 0; int j = L.len; while(i<j){ while(i<j&&L.data[i]>10)i++; while(i<j&&L.data[j]<10)j--; if(i<j){ int temp = L.data[i]; L.data[i] = L.data[j]; L.data[j] = temp; } } }
|
阅读(3247) | 评论(2) | 转发(0) |