题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,偶数位于后半部分。
思路:这个题目要求把奇数放在数组的前半部分,偶数放在数组的后半部分,因此数组中所有奇数位于偶数前面。我们在扫描这个数组时,遇到偶数在奇数前面时可以交换一下它们的顺序。因此我们可以定义两个指针pBengin、pEnd,pBegin指向数组的首地址,pEnd指向数组的最后一位,当pBengin指向的数字为奇数时,pbengin向后移动,当指向的数字为偶数时,先不动。当pEnd指向的数字为偶数时不动,奇数时向前移动。在没有相遇之前奇数总数位于偶数前面,如果第一个指向的位偶数第二个指向的为奇数,可以交换这两个数字。
代码:
#includeusing namespace std; void ReorderOddEven(int *arr,int length) { if(arr==NULL|| length==NULL) return; int *pBegin=arr; int *pEnd=arr+length-1; while(pBegin 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享题目:奇数位于偶数前面-创新互联
文章出自:http://bjjierui.cn/article/cspcgp.html