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]);
            }
        }
    }
  • 相关阅读:
    PHP str_replace() 函数
    PHP str_pad() 函数
    查看带有A-TIME的执行计划
    B. Recursive Queries 打表
    [AHOI2013]作业 莫队 树状数组
    SP1487 PT07J
    SP10628 COT
    洛谷P1494 [国家集训队]小Z的袜子
    [SDOI2013]森林 主席树 启发式合并
    [CQOI2015]任务查询系统 主席树_差分
  • 原文地址:https://www.cnblogs.com/CloudStrife/p/7270454.html
Copyright © 2011-2022 走看看