3-30:调整数组顺序使奇数位于偶数前面

问题:调整数组顺序使奇数位于偶数前面

(1)输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 (2)考虑设计一个模式解决同类问题。


void swap(int &a, int &b)
{
	int c = a;
	a = b;
	b = c;
}
bool iseven(int integer)
{
	return integer % 2;
}
void movearray(int iarray[], int start,int end,int length ,bool (*func)(int))
{
	if (start<0 || end>(length + start) || length < 0)
		return;
	while (start < end)
	{
		while (start < end && func(iarray[start]))
			start++;
		while (start < end && !func(iarray[end]))
			end--;
		if (start < end)
			swap(iarray[start], iarray[end]);

	}
}
int main()
{
	int test[10] = { 1, 18, 6, 24, 23, 10, 17, 8, 19 ,25};
	movearray(test, 0, 9, 10, iseven);
	for (int i = 0; i < 10; i++)
		cout <<test[i]<<"\t"  ;
}

Category technology