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

    剑指offer上的题目。题目内容如下:

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

    简单的,考虑控制2个指针,p1,p2. 

    p1指向首数组,p2指向尾数组。

    接着p1,向前移动,当遇到偶数时,停止,

    p2向后移动,当遇到奇数时,停止

    交换2个数字。

    题目详细解释,可以参照剑指offer上的解析。

    代码如下:

    package com.test.algorithm;
    
    import java.util.Scanner;
    
    public class Numbers {
        
        
        public static void reOrderArray(int [] array) {
            
            int p1,p2,len;
            len = array.length;
            p1 = 0 ;
            p2 = len - 1;
            while(p1<p2){
                while(array[p1]%2!=0&&p1<p2)
                    p1++;
                while(array[p2]%2==0&&p1<p2)
                    p2--;
                
                if(p1<p2){
                    int temp;
                    temp = array[p1];
                    array[p1] = array[p2];
                    array[p2] = temp;
                }
            }
         }
    
        
        public static void main(String[] args) {
            
            //Scanner scanner = new Scanner(System.in);
            int[] arrays = new int[]{1,2,3,4,5,6,7};
            reOrderArray(arrays);
            for(int i = 0 ; i < arrays.length; i++){
                System.out.println(arrays[i]);
            }
        }
    }
  • 相关阅读:
    Centos8 安装mongodb
    java 时间处理
    从技术走向管理李元芳履职记 读书记录
    debian基本操作
    centos8 安装kudu
    k8s api调用示例
    idea other settings
    C# Random生成相同随机数的解决方案
    DropDownList绑定选择数据报错问题
    离谱
  • 原文地址:https://www.cnblogs.com/CloudStrife/p/7270454.html
Copyright © 2011-2022 走看看