【剑指offer】调整数组顺序使奇数位于偶数前面

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

http://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f593

题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
1、思路分析
用的双指针,一开始我是让两个指针指向相邻位置,并且只循环一次,最后得到了错误的结果,分析发现,如果有一个奇数在两个连续的偶数的后面,则不能进行正常的交换,但每次循环之后,能保证最右边的偶数移到了循环的最后一个位置。因此,用了两层循环。第一层循环用来控制第二层循环的结束位置,依次保证每次循环遍历的最后一个位置为偶数,这个“窗口”不断向左扩充,最后就完成了题目完成的奇偶之间的交换。
2、代码

public class Solution {
    public void reOrderArray(int [] array) {
        for(int i = 0; i < array.length-1; i++) {
            for(int j = 0; j < array.length-1-i;j++){
                if((array[j]%2==0) && (array[j+1]%2==1)) {
                int temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
                }
            }
        }
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:23
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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