调整数组使奇数全部都位于偶数前面

//1.调整数组使奇数全部都位于偶数前面。
//题目:
//输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。


#include<stdio.h>
#include<windows.h>
#include<stdlib.h>

int Sort(int *a, int sz)
{
	int i ;
	for (i=0; i<sz; i++)
	{
                //判断奇偶
		if (a[i] % 2 != 0)
		{
			continue;
		}
		else
		{
			a[i] ^= a[sz];
			a[sz] ^= a[i];
			a[i] ^= a[sz];
			sz--;
			i--;   //注意此处i--,是因为交换后的数也要判断奇偶
		}
	}
	
}
int main()
{
	int a[] = {1,2,34,4,5,6,8,9};
	int sz = sizeof(a) / sizeof(a[0]) - 1;
	Sort(a, sz);
	int i;
	for (i = 0; i <= sz; i++)
	{
		printf("%d ", a[i]);
	}
	printf("\n");

	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/na_hanqiannan/article/details/80247353