zoukankan      html  css  js  c++  java
  • JAVA常见算法题(二十七)

    题目:给定一个存放整数的数组,请写一个算法,把偶数移动到该数组的右边,奇数放在该数组的左边,请考虑时间和空间的最优算法。

    package com.forezp.util;
    
    /**
     * 题目:给定一个存放整数的数组,请写一个算法,
     * 把偶数移动到该数组的右边,奇数放在该数组的左边,请考虑时间和空间的最优算法。
     * 
     * @author Administrator
     *
     */
    public class ArrayDemo {
        
        //判断是否为偶数
        public static boolean isEven(int n){
            return (n & 1) == 0 ;
        }
    
        //判断是否为偶数
        public static boolean isEven2(int n){
             return (n % 2)==0;
        }
        
        
        //定义算法
        public void order(int[] arr){
            if(null == arr){
                return ;
            }
            
            int i = 0;
            int j = arr.length - 1 ;
            
            while(i<j){
                
                //i是偶数,j是奇数
                if(isEven(arr[i]) && !isEven(arr[j])){
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }else if(!isEven(arr[i]) && isEven(arr[j])){
                    i++;
                }else if(isEven(arr[i]) && isEven(arr[j])){
                    j--;
                }else{
                    i++;
                }
            }
            
        }
        
        
        public static void main(String[] args) {
            ArrayDemo arrayDemo = new ArrayDemo();
            int[] arr = {4,3,5,2,10,6,7,22,23,34,45,56};
            arrayDemo.order(arr);
            for (int i : arr) {
                System.out.println(i);
            }
            
            System.out.println(isEven(1));
            System.out.println(isEven(12));
            System.out.println(isEven(13));
            System.out.println(isEven(14));
            System.out.println(isEven(15));
            System.out.println("--------------");
            System.out.println( 1 & 1);
            System.out.println( 12 & 1);
            System.out.println( 13 & 1);
            System.out.println( 14 & 1);
        }
        
    }

    运行结果:

    上面第一个关于判断是否为偶数的方法:

  • 相关阅读:
    NERDTree 快捷键辑录
    linux 自动登录脚本
    INSERT INTO .. ON DUPLICATE KEY更新多行记录
    Linux环境PHP7.0安装
    SVN常用命令
    Linux下查看文件和文件夹大小
    Cacti安装详细步骤
    linux回到上次目录与历史命令查找快捷方式
    shell的if else 以及大于,小于等逻辑表达式
    Nginx_Lua
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/7101790.html
Copyright © 2011-2022 走看看