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

来源:互联网 发布:网络视频直播系统 编辑:程序博客网 时间:2024/06/05 09:08

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


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

//面试题14_调整数组顺序使奇数位于偶数前面/*输入一个整数数组,实现一个函数来调整该数组只能够数字的顺序。使得所有奇数都位于数组的前半部分,偶数都位于数组的后半部分。*/#include<iostream>#include<vector>#include<string>#include<algorithm>#include<numeric>#include<functional>using namespace std;bool isEven(int n){return (n&1==0);//n是偶数则返回true}void Reorder(int *pData, unsigned int length, bool(*func)(int))//函数指针func{if(pData==nullptr || length==0)return;int *pBegin=pData;//数组头int *pEnd=pData+length-1;//数组尾while(pBegin<pEnd){while(pBegin<pEnd && !func(*pBegin))//是奇数++pBegin;while(pBegin<pEnd && func(*pEnd))//是偶数--pEnd;if(pBegin<pEnd){int temp=*pBegin;*pBegin=*pEnd;*pEnd=temp;}}}void ReorderOddEven(int *pData, unsigned int length){Reorder(pData, length, isEven);}



原创粉丝点击