2.设计一个算法用于将存储在顺序表LA中所有值在[a,b](a<b)范围内的元素删除;要求算法的时间复杂度为O(n);,c语言
时间: 2024-03-27 10:36:27 浏览: 48
数据结构与算法c++实现 删除顺序表中大于x的元素
5星 · 资源好评率100%
以下是实现该算法的C语言代码:
```c
void deleteRange(int LA[], int n, int a, int b) {
int i, j;
for (i = 0, j = 0; i < n; i++) {
if (LA[i] < a || LA[i] > b) {
LA[j] = LA[i];
j++;
}
}
n = j;
}
```
该算法的时间复杂度为O(n),其中n为顺序表LA中元素的个数。算法通过遍历顺序表LA中的所有元素,将值不在[a,b]范围内的元素删除,并将剩余元素向前移动。最终,顺序表LA中所有值在[a,b]范围内的元素被删除,算法的时间复杂度为线性。
阅读全文