若一个线性表L采用顺序存储结构存储,其中所有元素为整数,设计一个算法,将所有小于0的元素面前,要求算法的时间复杂度为O(n),空间复杂度为O(l)
#include <stdio.h>
void swp(int& a, int& b)
{
int c = a;
a = b;
b = c;
}
int main()
{
int z = 0, i = 0;
int data[] = {2,-1,0,5,-3,8,-2,-9,0,8};
for (i = 0; i < 10; i++)
{
if (data[i] < 0)
{
swp(data[i], data[z]);
z++;
}
}
for (i = 0; i < 10; i++) printf("%d ", data[i]);
}
-1 -3 -2 -9 2 8 0 5 0 8
顺便说下,空间复杂度是O(1),不是O(l)。题目会不会做先不说,起码把题目什么意思得搞清楚。