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);
        }
        
    }

    运行结果:

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

  • 相关阅读:
    ASP.NET 页生命周期
    TextBox只输入数字和event.keyCode的键码值
    正则表达式30分钟入门教程
    240多个jQuery插件
    编写高性能的SQL语句(二)
    利用sp_addlinkedserver與sp_addlinkedsrvlogin來做DBLink
    C# 格式串
    sql查询优化(一),not in及详细讲解提高数据库查询效率
    抽象方法与虚方法(转)
    Gridview表头(跨行、跨列)显示样式!
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/7101790.html
Copyright © 2011-2022 走看看