实现一个函数来调整该数组中数字的顺序实例

来源:互联网 发布:如何设置监控网络连接 编辑:程序博客网 时间:2024/06/05 08:35
//输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 public class Test {    public static void main(String args[])    {        int[] a = new int[7];        for (int i = 0; i < a.length; i++) {            a[i] = i + 1;        }        order(a);        for (int i = 0; i < a.length; i++) {            System.out.print(a[i]);        }    }    public static void order(int[] array)    {        //另外构造一个数组        int[] orderArray = new int[array.length];        //用来存放新组数的下标        int num = 0;        //取出所有的奇数,只取没查过的下标,因此要-num        for(int i = 0;i < array.length - num;)        {            //如果为奇数            if(array[i] % 2 != 0)            {                //放到新组数                int temp = array[i];                orderArray[num ++] = temp;                //移动原数组再次并循环,注意此时i并未自增                for(int j = i;j < array.length - num;j ++)                {                    array[j] = array[j + 1];                }            }            //若不是奇数则下一个            else            {                i ++;            }        }        //新数组添加原数组剩下的偶数        for(int i = 0;i <= array.length;i ++)        {            if(num <= array.length - 1)            {                orderArray[num ++] = array[i];            }            else            {                break;            }        }        //将新数组赋值给原数组        for (int i = 0; i < orderArray.length; i++) {            array[i] = orderArray[i];        }    }}
0 0