0
点赞
收藏
分享

微信扫一扫

JZ81 调整数组顺序使奇数位于偶数前面(二)

算法1:使用快排的方法,进行挪位置,但是这样做的话,循环太多

虽然是多层while循环,但是O(n),原因是当left==right,就跳出循环了

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型一维数组 
     * @return int整型一维数组
     */
    public int[] reOrderArrayTwo (int[] array) {
        if(array==null ){
            return null;
        }
        int[] a = new int[0];
        if(array.length==0){
            return a;
        }
       
        // write code here
        //使用快排的方法
        int temp = array[0];
        int left = 0,right =array.length-1;
        while(left<right){
            //先看右边往左移动
            while(left<right){
               if(array[right]%2==1){
                   array[left] =array[right];
                   break;
               } 
                right--;
            }
            while(left<right){
                if(array[left]%2==0){
                  array[right]=array[left]; 
                    break;
                }
                left++;
            }
            
        }
        array[left] = temp;
        return array;
    }
}

举报

相关推荐

0 条评论