剑指offer23题:调整数组顺序使得奇数位于偶数前面

2018-12-27  本文已影响0人  灰化肥发黑会挥发

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

public class ReordOddEven {
    public void Record(int[] arr){
        if(arr.length==0) return ;
        int start = 0;
        int end = arr.length-1;
        while(start<end){
            while(start<end&&arr[end]>>1==0) end--;
            while(start<end&&arr[start]>>1!=0) start++;
            if(start<end) {
                int temp = arr[start];
                arr[start] = arr[end];
                arr[end] = temp;
            }
        }

    }

}

public class ReordOddEven {
    public void Record(int[] arr){
        if(arr.length==0) return ;
        int start = 0;
        int end = arr.length-1;
        while(start<end){
            while(start<end&&judge(arr[end])) end--;
            while(start<end&&!judge(arr[start])) start++;
            if(start<end) {
                int temp = arr[start];
                arr[start] = arr[end];
                arr[end] = temp;
            }
        }

    }
    public boolean judge(int data){
         if(data>>1==0) return true ;
         else  return false;
    }

}
上一篇 下一篇

猜你喜欢

热点阅读