奇数移到偶数前面

时间:2024-10-29 17:45:43

已知线性表按顺序存储,且每个元素都是整数均不相同,把所有奇数移到所有偶数前边

思想同上

int Rearrange(SqList a, int n)
{
	int prev = 0;  //指针 prev,用于记录负数区间的最后一个负数
	int cur = 0;   //指针 cur,用于遍历数组中的每个元素

	while (cur < n)  //继续遍历直到 cur 超出数组范围
	{
		if (a[cur] % 2 != 0)   //如果当前元素为奇数
		{
			Swap(&a[prev++], &a[cur]);  //将奇数放到前半区间的末尾
		}
		++cur;            //移动 cur 到下一个元素
	}

	return prev;          //返回奇数区间的结束位置
}