54.调整数组顺序使奇数位于偶数前面(数组)。

原创 2012年03月30日 17:30:50
54.调整数组顺序使奇数位于偶数前面(数组)。


题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,

所有偶数位于数组的后半部分。要求时间复杂度为O(n)。


//coder:LEE 20120330
#include<iostream>
#include<CASSERT>
#include<vector>
using namespace std;
void Swap(int *a,int *b)
{
	int t;
	t=*a;
	*a=*b;
	*b=t;
}
void AdjustSequence(int *A,int n)
{
	int behind=-1;
	for (int i=0;i<n;i++)
	{
		if(A[i]%2==1)
		{
			behind++;
			Swap(&A[behind],&A[i]);
		}
	}
}
bool IsEven(int n)
{
	if((n&1)==0)
		return true;
	else
		return false;
}
void AdjustSequence(int *A,unsigned int nLen,bool (*func)(int))
{
	assert(A!=NULL&&nLen>0&&func!=NULL);
	unsigned int behind=0;
	unsigned int front=nLen-1;
	
	while(behind<front)
	{
		if(!func(A[behind]))
		{
			behind++;
			continue;
		}
		if (func(A[front]))
		{
			front--;
			continue;
		}
		Swap(&A[behind],&A[front]);
	}

}
int main()
{
	int A[]={2,5,3,4,9,6};
	int nLen=sizeof(A)/sizeof(int);
	AdjustSequence(A,nLen,IsEven);
	for (int i=0;i<nLen;i++)
	{
		cout<<A[i];
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

我们爱面试,一面一学-----微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面

同上一篇,这篇是看来的题目,自面试而已。 题目:调整整数数组中元素的顺序,使所有奇数位于偶数的左面。 这应该算快排的一部分思路:找到一个比较标准,然后从数组两头分别搜索,找到两个不符合的元素后,交...

剑指Offer——(13)调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

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

调整数组顺序使奇数位于偶数前面 时间限制:1秒 空间限制:32768K 本题知识点: 数组 题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序, 使得所有的奇数位于数组的前半部分,所有的...

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

题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,...

剑指Offer14:调整数组顺序使奇数位于偶数前面

题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位予数组的后半部分。 题目分析解决思路解决方法:设置两个指针,第一个指针初始化指向数组的第...

边看边写(调整数组顺序使奇数位于偶数前面)

#region 调整数组顺序使奇数位于偶数前面 /// /// 输入一个 整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分 ...

剑指offer:调整数组顺序使奇数位于偶数前面

题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。    如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个...

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

只完成基本功能的解法       void ReorderOddEven(int *pData, unsigned int length) { if (pData == NULL ...

剑指offer-调整数组顺序使奇数位于偶数前面

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分 1》当不考虑奇数与奇数,偶数与偶数的相对位置时: ...

剑指offer--调整数组顺序使奇数位于偶数前面

记录来自《剑指offer》的算法题。题目如下: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
  • lc013
  • lc013
  • 2017-01-29 18:47
  • 150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)