设计一个高效算法,删除顺序表中所有元素值为x的元素,数据元素类型为整型,时间复杂度为O(n),空间复杂度为O(1)
时间: 2023-05-11 16:02:12 浏览: 101
算法的时间复杂度-struct
可以使用双指针法,一个指针指向当前要删除的位置,另一个指针指向下一个不为x的位置,然后将后一个位置的元素复制到当前位置,直到遍历完整个顺序表。具体实现代码如下:
void delete_x(int a[], int n, int x)
{
int i, j;
for (i = 0, j = 0; j < n; j++) {
if (a[j] != x) {
a[i] = a[j];
i++;
}
}
}
时间复杂度为O(n),空间复杂度为O(1)。
阅读全文