题解 | #调整数组顺序使奇数位于偶数前面#

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

https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int i=0;
        for (int j=0; j<array.size(); ++j) {
            if (array[j]%2!=0) {
                int temp=array[j];
                for (int k=j-1; k>=i; --k) {
                    array[k+1]=array[k];
                }
                array[i++]=temp;
            }
        
        }
    }
};

思路

在遍历时候对奇数处理,将它们有序地放置在前面。每次遇到一个奇数,应该把它前移,为了保证移动到前面的相对顺序,需要一个指针来标识当前应该放的位置。(插入排序)

判断奇偶的方法

  • 如果一个数除以2的余数为0,则该数为偶数;否则为奇数
if(i%2==0)
if(i%2!=0)
  • 如果一个数与1进行按位与运算的结果为1,则该数为奇数;否则为偶数
 if (num & 1) {
        cout << num << " 是奇数" << endl;
    } else {
        cout << num << " 是偶数" << endl;
    }

全部评论

相关推荐

12-06 16:17
济宁学院 Java
点赞 评论 收藏
分享
10-30 16:31
重庆大学 Java
代码飞升_不回私信人...:你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务