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


    /*输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,
    所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。*/
    public class ReorderArrayOddBeforeEven {
        public static void main(String args[]){
            int intArr[]={3,6,8,12,9,1,5,6,10};
            Solution34 solution34 = new Solution34();
            solution34.reOrderArray(intArr);
            for(int i=0; i<intArr.length; i++){
                System.out.print(intArr[i] +" ");
            }
            System.out.println();
        }
    
    }
    
    class Solution34 {
        public void reOrderArray(int[] array) {
                if(array== null || array.length==0){
                    return;
                }
                int i=0,j=0;
                while(j<array.length) {
                    while (i<array.length && array[i] % 2 == 1) {
                        i++;
                    }
                    if(j==0) {
                        j = i;
                    }
                    while (j<array.length && array[j] % 2 == 0  ) {
                        j++;
                    }
                    if(j<array.length && j>0) {
                        //所有的偶数后移,奇数移动到原来第一个偶数所在的位置
                        int temp = array[j];
                        for (int k = j - 1; k >= i; k--) {
                            array[k + 1] = array[k];
                        }
                        array[i++] = temp;
                        j++;
                    }
                }
    
        }
    }
  • 相关阅读:
    删除使用RMAN命令备份的文件
    查看.Net Framework版本的方法(zz)
    c# Foreach last (zz)
    Visual Studio 2008 QFE (zz)
    打印机的接口
    牛人的PENTAX单反之路
    我新进的宾得K10D机器和镜头
    买车险要有足额第三者责任险
    谈谈P家的SUPERTAKUAMR
    硬盘接口总结
  • 原文地址:https://www.cnblogs.com/Allen-win/p/8323660.html
Copyright © 2020-2023  润新知