zoukankan      html  css  js  c++  java
  • 剑指offer:调整数组顺序使奇数位于偶数前面

    题目描述:

    调整数组顺序使奇数位于偶数前面
    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,
    所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
    思路:
    1、重新开辟一个数组,先将奇数存入,然后将剩余的偶数填入
    2、插入排序,保证相对位置不变

     1 public class Tiaozhengshunxu {
     2     public static void reOrderArray(int [] array) {
     3 //        int len = array.length;
     4 //        int[] array1 = new int[len];
     5 //        int[] array2 = new int[len];
     6 //        int j = 0,k=0;
     7 //        for(int i = 0;i<len;i++){
     8 //            if(array[i]%2==0){
     9 //                array2[j]=array[i];
    10 //                j++;
    11 //            }else {
    12 //                array1[k]=array[i];
    13 //                k++;
    14 //            }
    15 //        }
    16 //        System.arraycopy(array1, 0, array, 0, k);
    17 //        System.arraycopy(array2, 0, array, k, j);
    18 ////        for(int i = 0 ;i<array.length;i++){
    19 ////            System.out.println(array[i]);
    20 ////        }
    21         int len = array.length;
    22         int[] res = array.clone();
    23         int j = 0;
    24         for(int i = 0; i < len;i++){
    25             if(array[i]%2==1){
    26                 res[j]=array[i];
    27                 //System.out.println(res[j]);
    28                 j++;               
    29             }    
    30         }
    31         for(int i = 0; i < len;i++){
    32             if(array[i]%2==0){
    33                 res[j]=array[i];
    34                 //System.out.println(res[j]);
    35                 j++;
    36                 
    37             }    
    38         }
    39     
    40         array = res;
    41         for(int i = 0 ;i<array.length;i++){
    42         System.out.println(array[i]);
    43     }
    44     }
    45     public static void main(String[] args) {
    46         // TODO Auto-generated method stub
    47         int[] array = {1,2,3,4,5,6,7};
    48         reOrderArray(array);
    49     }
    50 
    51 }
  • 相关阅读:
    上市前为什么要分红
    在文件开始追加一行
    c++ 日期时间工具
    windows c++找不到time.h sys/types.h
    截取ls -l的某一列
    提取指定类型文件到指定目录,保留目录结构
    批量转换当前目录下的文件名为snake case
    vcpkg boost uuid Bcrypt 链接问题
    文件名pascal转underscore
    vcpkg cmake 找不到boost
  • 原文地址:https://www.cnblogs.com/zlz099/p/8572435.html
Copyright © 2011-2022 走看看