已知长度为n的线性表a采用顺序存储结构,请写一个时间复杂度为o(n)、空间复杂度为o(1)的算法,该算法可删除线性表中所有值为item的数据元素。
时间: 2023-04-17 07:02:48 浏览: 184
时间复杂度为O(logN)的常用算法,算法数据结构
5星 · 资源好评率100%
算法步骤如下:
1. 定义两个指针i和j,初始值都为。
2. 从头开始遍历线性表a,如果当前元素的值不等于item,则将该元素赋值给a[i],同时i指针加1。
3. 如果当前元素的值等于item,则j指针加1,继续遍历下一个元素。
4. 遍历完整个线性表后,i指针的值即为删除元素后线性表的长度。
5. 将a中前i个元素作为新的线性表返回。
该算法的时间复杂度为O(n),空间复杂度为O(1)。
阅读全文