已知长度为n的线性表a采用顺序存储结构,请写一时间复杂度为o(n)、空间复杂度为o(1)的算法,该算法删除线性表中所有值为item的数据元素。
时间: 2023-03-19 17:26:33 浏览: 382
算法如下:
1. 初始化两个指针i和j,分别指向线性表的第一个元素和第二个元素。
2. 循环遍历线性表,当a[i]不等于item时,将a[i]赋值给a[j],并将i和j都加1;当a[i]等于item时,只将i加1。
3. 循环结束后,将线性表的长度更新为j,即可完成删除操作。
时间复杂度为O(n),空间复杂度为O(1)。
相关问题
已知长度为n的线性表a采用顺序存储结构,请写一时间复杂度为o(n)、空间复杂度为o(1)的算法,该算法删除线性表中所有值为item的数据元素
算法如下:
1. 定义两个指针i和j,初始值都为1。
2. 从头开始遍历线性表a,如果a[i]不等于item,则将a[i]赋值给a[j],同时i和j都加1。
3. 如果a[i]等于item,则i加1,跳过该元素。
4. 遍历完整个线性表后,将长度设置为j-1。
时间复杂度为O(n),空间复杂度为O(1)。
已知长度为n 的线性表a 采用顺序存储结构,请写一时间复杂度为o(n)、空间复杂度为o(1)的算法,该算法删除线性表中所有值为item 的数据元素。
算法如下:
1. 定义两个指针:i和j,初始值都为0。
2. 从头到尾遍历线性表a,如果a[i]不等于item,则将a[i]赋值给a[j],同时i和j都加1;如果a[i]等于item,则只将i加1,不将a[i]赋值给a[j]。
3. 遍历完整个线性表后,j的值即为删除元素后线性表的长度。
4. 将线性表a的长度更新为j。
时间复杂度为O(n),空间复杂度为O(1)。
阅读全文
相关推荐













