网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

数组元素的分类-创新互联

题目:

创新互联建站为企业级客户提高一站式互联网+设计服务,主要包括成都网站建设、做网站、App定制开发小程序定制开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。 

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

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

程序1.0:

使用两个指针一个指向头一个指向尾,如果头指针遇到奇数就后移,遇到偶数就和尾指针指向的元素交换,头指针交换完成后后移,尾指针交换完成后前移,当两指针指向同一地址交换结束

void ReorderOddEven(int *pData, size_t length)
{
	assert(pData);
	assert(length);
	int*pHead = pData;
	int*pTail = pData + length - 1;
	while (pHead != pTail)
	{
		if ((*pHead & 0x1) == 0)//为偶数
		{
			swap(*pHead, *pTail);
			pTail--;
		}
		pHead++;
	}
}

程序1.1

void ReorderOddEven(int *pData, size_t length)
{
	assert(pData);
	assert(length);

	int *pHead = pData;
	int*pTail = pData + length - 1;

	while (pHead < pTail);
	{
		while (((*pHead & 0x1) != 0) && (pHead < pTail))//前面数若为奇数
		{
			pHead++;
		}
		while (((*pHead & 0x1) == 0) && (pHead < pTail))//若后面的数为偶数
		{
			pTail--;
		}
		if (pHead < pTail)
		{
			swap(*pHead, *pTail);
		}
	}
}

程序2.0

若要把题目改为:将正数放到负数前面或者改为将能被三整除的数放到不能被三整数的数的前面只需要将while里的循环条件改一下就可以

但是,若想要一个通用的模板呢?(即不要改变函数,只改变判断条件)

void ReorderOddEven(int *pData, size_t length, bool(*func)(int))
{
	assert(pData);
	assert(length);

	Reorder(pData, length, isEven);
}
void Reorder(int *pData, size_t length, bool(*func)(int))
{
	int *pHead = pData;
	int*pTail = pData + length - 1;

	while (pHead < pTail);
	{
		while (((*pHead & 0x1) != 0) && !func(*pHead))//前面数若为奇数
		{
			pHead++;
		}
		while (((*pHead & 0x1) == 0) && func(*pTail))//若后面的数为偶数
		{
			pTail--;
		}
		if (pHead < pTail)
		{
			swap(*pHead, *pTail);
		}
	}
}
bool isEven(int n)
{
	return (n & 0x1) == 0;
}

    这样,就可以通过改变函数isEven的内容来改变整体函数的条件,增加了函数的可移植性和健壮性

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:数组元素的分类-创新互联
本文路径:http://bjjierui.cn/article/igdjd.html

其他资讯