设有一个顺序表L,其元素为整数数据,设计一个算法将L中所有小于0的整数放到前半部分,大于等于0的数据放到后半部分。
typedef struct sqList
{
int data[MAX_LEN];
int length;
}sqList;
void sort(sqList &l)
{
int i = 0, j = l.length - 1, tmp = 0;
while (i < j)
{
if (l.data[i] < 0)
{
if (l.data[j] >= 0)
{
j --;
i ++;
}
else
{
i ++;
}
}
else
{
if (l.data[j] >= 0)
{
j --;
}
else
{
tmp = l.data[i];
l.data[i] = l.data[j];
l.data[j] = tmp;
j --;
i ++;
}
}
}
}
ps 移动索引是i < j, 题目是L