[算法学习]整数序列的奇偶分类

来源:互联网 发布:阿里云ecs配置php环境 编辑:程序博客网 时间:2024/05/17 21:56

问题描述: 输入一组序列,奇数在前,偶数在后,输出整理后的序列。

解法与分析: 能马上想到用二分法,就很快能解决问题。


参考代码如下

/** * 解法:使用二分法 * @param nums */public static void reorderOddEven(int[] nums){    if(nums==null)    {        return;    }    int left=0;    int right=nums.length-1;    while (left<right)    {        while (left<right&&nums[left]%2==1)        {            left++;        }        while (left<right&&nums[right]%2==0)        {            right--;        }        if(left>=right)        {            break;        }        exch(nums, left, right);    }}/** * * @Description: 交换数组中两个数的值 * @param @param nums * @param @param index1 * @param @param index2 * @return void */private static void exch(int[] nums,int index1,int index2){    if(index1==index2)    {        return;    }    nums[index1]^=nums[index2];    nums[index2]^=nums[index1];    nums[index1]^=nums[index2];}
  • 附:源码地址
1 0