若一个线性表L采用顺序结构存储,其中所以元素为整数。设计一个算法,将所有小于零的元素移到所有大于零

若一个线性表L采用顺序结构存储,其中所以元素为整数。设计一个算法,将所有小于零的元素移到所有大于零的元素的前面,要求算法的时间复杂度为o(n),空间复杂度为1.

void move(SeqList *L)
{
int i, j;
int temp;
for (i = 0, j = L->length -1; i < j; )
{
while (i < j && L->data[i] < 0)
i ++;
while (i < j && L->data[j] > 0)
j --;
if (i < j)
{
temp = L->data[i];
L->data[i] = L->data[j];
L->data[j] = temp;
}
}

}
温馨提示:答案为网友推荐,仅供参考
相似回答