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】调整数组顺序使奇数位于偶数前面

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

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

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

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

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

牛客网刷题之调整数组顺序使奇数位于偶数前面

题目描述:解题思路:  如果是强解的话,就可以从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字都往前挪动一位,这种解法显然是O(n^2)的,不用想都知道,这不可能通过测...

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

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

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

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

面试题--调整数组顺序使所有的奇数位于偶数前面

调整数组顺序,使所有的奇数位于偶数前面       这是一个面试的时候经常会遇到的题(正所谓的面试题),当拿到这个题目,你首先会想到的是遍历这个数组每碰到偶数时,拿出这个数字与其后的数字交换,但...

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

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

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

题目:输入一个整数数组,实现一个函数调整数组的元素顺序,使得奇数位于偶数的前半部分,偶数位于数组的后半部分。 对于这个问题,最直接的办法就是遍历这个数组,如果是奇数就往后遍历,如果是偶数,则将后面所...

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

题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位予数组的后半部分。 题目分析解决思路解决方法:设置两个指针,第一个指针初始化指向数组的第...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:54.调整数组顺序使奇数位于偶数前面(数组)。
举报原因:
原因补充:

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