美文网首页
数组调序奇数在前,偶数在后

数组调序奇数在前,偶数在后

作者: ShawnCaffeine | 来源:发表于2019-05-30 22:03 被阅读0次

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

    1.创建一个空间,遍历一遍数组,奇数就赋值进去,然后偶数再赋值进去。/或者创建两个数组,一个放奇数一个放偶数。

    import java.util.*;
    public class Solution {
        public boolean Divisible(int a){
                    if(a%2==0){
                    return true;        
                    }else{
                        return false;    
                    }
                }   
              public void reOrderArray(int [] array) {
                  //排序算法?
                    //1.建立一个数组
                   ArrayList a1=new ArrayList();
             //       int oddNum=0;
               //     int[] array1=new int[array.lengh];
                    for(int i=0;i<array.length;i++){
                        if(!Divisible(array[i])) {
                           a1.add(array[i]);
                        }                      
                    }
                   for(int i=0;i<array.length;i++){
                        if(Divisible(array[i])) {
                           a1.add(array[i]);
                        }
                    }
    //            int[] array2=new int[a1.size()];
                  for(int i=0;i<a1.size();i++){
                      array[i]=(int) a1.get(i);
                  }
                 //   array=array2;        
                    }
    }
    

    2.和褚老板讨论出的思路。感谢褚老板的想法提供和大力支持。首先,找到第一个偶数的位置记录下来,然后从该位置往后遍历整个数组,遇到一个奇数,就把这个奇数插到这个偶数前面的位置,并让这个位置+1(因为这个位置被遇到的奇数位置占了)。

    public class Solution {
        
        int loc=0;
        public void reOrderArray(int [] array) {
            for(int i=0;i<array.length;i++){
                if(array[i]%2==0){
                    loc=i;
                    break;
                }
            }
            for(int i=loc;i<array.length;i++){    
                if(array[i]%2==1){
                     int temp= array[i];
                    for(int j=i;j>loc;j--){
                        array[j]=array[j-1];
                     }
                    array[loc]=temp;
                    loc++;
        }
    
                }
            }
    
    }
    
    

    相关文章

      网友评论

          本文标题:数组调序奇数在前,偶数在后

          本文链接:https://www.haomeiwen.com/subject/syibtctx.html