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

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

作者: 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++;
    }

            }
        }

}

相关文章

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

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

  • 373. 奇偶分割数组

    描述 分割一个整数数组,使得奇数在前偶数在后。 样例 给定 [1, 2, 3, 4],返回 [1, 3, 2, 4...

  • 123

    题2: 实现单例类 - done 题3: 二维数据查找 - done 题14: 调整数组顺序,使奇数在前偶数在后 ...

  • 奇偶调序

    奇偶调序 题目描述: 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后...

  • LintCode - 奇偶分割数组(容易)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 难度:容易 要求: 分割一个整数数组,使得奇数在前偶数在后。...

  • 4、将数组的奇数放在前,偶数放在后

  • OJ lintcode 奇偶分割数组

    分割一个整数数组,使得奇数在前偶数在后。您在真实的面试中是否遇到过这个题?Yes样例给定 [1, 2, 3, 4]...

  • 数组内奇偶数分离

    数组内奇偶数分离(奇数在前) 数组:[1, 2, 3, 4, 5, 6, 7, 8, 9] 结果:[1, 3, 5...

  • 让一个数组中奇数在前偶数在后

    不要求奇数偶数排序 思路: 设定两个变量,从数组两端开始往里缩减,要求左边都为奇数,那么left为奇数就++判断下...

  • [数组] 将数组中奇数放在偶数的前面

    将数组中奇数放在偶数的前面,且奇数和奇数之间,偶数和偶数之间相对顺序不变。 思路:1. 先找到第一个偶数2. 在找...

网友评论

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

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