一个线性表 L采用顺序存储结构,若其中所有元素为整数,编写算法将所有小于0的数据元素移到所有大于 0的元素的前面,要求算法的时间复杂度为 O(n),空间复杂度为O(1)。
时间: 2023-05-11 16:02:49 浏览: 126
数据结构对元素类型为整型的顺序存储的线性表进行插入、删除和查找操作.doc
可以使用双指针法来实现该算法,具体步骤如下:
1. 定义两个指针 i 和 j,分别指向线性表的开头和结尾。
2. 当 i < j 时,执行以下操作:
a. 如果 L[i] < 0,将 L[i] 和 L[j] 交换,j--。
b. 如果 L[i] >= 0,i++。
3. 当 i >= j 时,算法结束。
该算法的时间复杂度为 O(n),空间复杂度为 O(1)。
阅读全文