9,调整数组,奇数在前,偶数在后

时间:2019-08-11
本文章向大家介绍9,调整数组,奇数在前,偶数在后,主要包括9,调整数组,奇数在前,偶数在后使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目描述:

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,

所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变

 public void reOrderArray(int [] array) {
        int [] temp=new int[array.length];
        int count=0;
        int t=0;
        for (int i : array) {
            if(i%2!=0){
                array[count++]=i;
            }else{
                temp[t++]=i;
            }
        }
        int i=0;
        while (i<t) {
            array[count]=temp[i++];
            count++;
        }
    }

解题思路二(插排思想):若是遇到奇数,向前移动到前一个奇数后面

public static void reOrderArray2(int [] array) {
        for (int i = 1; i < array.length; i++) {
            int insertValue=array[i];
            if(insertValue%2==1){ 
                               //注意这里,先判断i是否出界
                while(i>0 && array[i-1]%2==0){
                    array[i]=array[i-1];
                    i--;
                }
                array[i++]=insertValue;
            }
        }
        
    }

原文地址:https://www.cnblogs.com/kobe24vs23/p/11334985.html