调整数组位次,奇数的在前面,偶数的在后面。

本文介绍了一种算法,用于将整数数组中的所有奇数放在前半部分,所有偶数放在后半部分,同时保持同类数字间的相对顺序不变。通过创建辅助数组分别存储奇数和偶数,最后合并以达到目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

思路:创建个数组,遍历奇数,存入,遍历偶数存入,覆盖原数组。


class Solution {
public:
    void reOrderArray(vector<int> &array) {
        //2017年-6-18- 周日
        //思路:偶数:123456
        //辅助数组肯定不行
        //奇数:1234567
        //从前往后扫。若为奇数则不动,若为偶数则。
        //判断是否为
        //插入排序。快速排序是不稳定的
        if(array.empty()) return ;
       // vector<int> tmp()
        //扫描奇数,前移,偶数存在辅助数组里
        //1 快速排序
        //创建辅助数组
        //
       int len=array.size();
        vector<int> tmp;
        //奇怪,太多,做出来总比做不出来好
        //zhengqigu
        int index=0;
        while(index<len)
       {
            //判断是奇数吗,是就不动
            if(array[index]%2==1)
            {
                //偶数的话,怎么移动呢
                tmp.push_back(array[index]);
                
            }
            index++;
                
            
        }  
          index=0;
        while(index<len)
       {
            //判断是奇数吗,是就不动
            if(array[index]%2==0)
            {
                //偶数的话,怎么移动呢
                tmp.push_back(array[index]);
                
            }
                index++;
            
        }  
        //覆盖原数组
            array=tmp;
        
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值