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]);
            }
        }
    }
  • 相关阅读:
    Java&Go三种HTTP服务端端性能测试
    利用闭包实现自定义等待方法
    LevelDB在测试中应用应用
    利用Java反射处理private变量
    FunTester2021年总结
    推倒重来的觉悟
    SpringMVC项目依赖和静态资源导出
    DES算法详解
    5G AKA协议详解
    RSA算法加解密证明过程
  • 原文地址:https://www.cnblogs.com/CloudStrife/p/7270454.html
Copyright © 2011-2022 走看看