数组排列(奇数在前,偶数在后)

比如[1,2,3,4,5],排列结果可以是[1,5,3,4,2]

代码:

/**
 * Created by wuchao on 17-3-29.
 */
import java.util.*;
public class test {
    public static int array[] = {1,2,3,4,5,6,7,8,9,1,3,4,6,3,4,5,5,4,4};
    public static void main(String[] args) {
        sort(array);
        System.out.println(Arrays.toString(array));
    }
    public static void sort(int[] array){
        int len = array.length;
        if(len==1) return;
        int i=0,j=len-1;

        while(i<j){
            //从左找第一个偶数,并退出循环
            while(isOdd(array[i])&&i<j) i++;
            //从右找第一个奇数,并退出循环
            while(!isOdd(array[j])&&i<j) j--;

            //奇数和偶数交换
            int tmp = array[i];
            array[i]=array[j];
            array[j]=tmp;
        }
    }
    //判断是否是奇数
    public static boolean isOdd(int n){
        if((n&1)==1) return true;
        return false;
    }
}

 

posted @ 2017-04-11 15:38  且听风吟-wuchao  阅读(1212)  评论(0编辑  收藏  举报