输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
创新互联建站从2013年开始,先为洋县等服务建站,洋县等地企业,进行企业商务咨询服务。为洋县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。首先,可以想到,用前后两个指针一个在数组首一个在数组尾同时往数组中间遍历,当遇到前指针遇到偶数后指针遇到奇数时,就将两个数交换,直到两指针相遇或者前指针超过了后指针,这个有点类似快速排序的思想;
程序设计如下:
#include#include using namespace std; void AdjustArr(int *parr, size_t size) //调整数组 { assert(parr && size); int *start = parr; int *end = parr+size-1; while(start < end) { while((start < end)&&((*start % 2) != 0))//当start指针遇到偶数停止 ++start; while((start < end)&&((*end % 2) == 0)) //当end指针遇到奇数停止 --end; if(start < end)//判断start和end位置 { swap(*start, *end); ++start; --end; } else return; } } void PrintArr(int *parr, size_t size) //打印数组 { assert(parr && size); for(size_t i = 0; i < size; ++i) { cout< 运行程序,结果:
《完》
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
分享文章:调整数组顺序使奇数位于偶数前面——14-创新互联
文章路径:http://chengdu.cdxwcx.cn/article/hidph.html