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

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

resolution:

 public void reOrderArray(int [] array) {
       for(int i =1; i < array.length;i++){
           //如果为奇数 这里也可以写成(array[i] % 2) ==1
           if((array[i] & 1) == 1 ){
               int temp = array[i];
               int j = i -1 ;//这里令j=i还是i-1需要注意
               while (j >= 0){
                   //如果array[j - 1] 为偶数
                   if((array[j] & 1) == 0){
                       array[j + 1] = array[j];
                       j--;
                   }else if((array[j] & 1) == 1) break;
                   //这里用break而不是continue,因为需要跳出整个while循环
               }
               array[j + 1] = temp;
           }
       }
    }
欢迎关注我的公众号:小秋的博客 CSDN博客:https://blog.csdn.net/xiaoqiu_cr github:https://github.com/crr121 联系邮箱:rongchen633@gmail.com 有什么问题可以给我留言噢~
原文地址:https://www.cnblogs.com/flyingcr/p/10326837.html