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

第一种:

成都创新互联于2013年开始,先为象山等服务建站,象山等地企业,进行企业商务咨询服务。为象山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

开辟一个一样大小的数组,遍历原数组的数据,把原数组奇数依次存放在新数组的前面,偶数存放在后面。

时间复杂度:O(n^2);

空间复杂度:O(n)

缺陷:效率太差

#include
#include
void Adjust(int* src,int* des,int n)
{
	int index=0;
		for(int j=0;j

结果:

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

第二种:

利用两个指针,一个指向数组开始,一个指向数组末尾,指向数组开始的那个指针依次向后遍历,找到偶数立即停下来,指向数组末尾的那个指针向前遍历,找到奇数停下来,判断start<=end,,交换两个值。

#include
#include
bool Check(int num)
{
	return num%2;
}
void swap(int* a,int *b)
{
	int tmp=*a;
	*a=*b;
	*b=tmp;
}
void Adjust(int* a,int n)
{
	int start=0;
	int end=n-1;
	while(start<=end)
	{
		while(Check(a[start])&&start<=end)
		{
			start++;
		}
		while(!(Check(a[end]))&&start<=end)
		{
			end--;
		}
		if(start

结果:

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


当前名称:调整数组顺序使奇数位于偶数前面
文章URL:http://scyanting.com/article/psjsco.html