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

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

运行结果:

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

JAVA常见算法题(二十七)的更多相关文章

  1. JAVA常见算法题(二十八)

    package com.forezp.util; import java.util.Arrays; /** * 两个int数组,都是从小到大的的排列,请合并为一个新的数组,也是从小到到大的排列, * ...

  2. JAVA常见算法题(二十六)

    package com.xiaowu.demo; import java.util.Scanner; /** * Java实现将阿拉伯数字转为汉字 * * @author WQ * */ public ...

  3. JAVA常见算法题(二十五)

    /** * Java实现中文数字转换为阿拉伯数字 * * * @author WQ * */ public class Demo26 { public static void main(String[ ...

  4. JAVA常见算法题(二十九)

    package com.forezp.util; import java.util.Scanner; /** * 判断输入的5个字符串的最大长度,并输出 * * * @author Administr ...

  5. JAVA常见算法题(二十四)

    package com.xiaowu.demo; //一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. public class Demo24 { public ...

  6. JAVA常见算法题(二十三)

    package com.xiaowu.demo; /** * 给一个不多于5位的正整数,要求:①求它是几位数:②逆序打印出各位数字. * * * @author WQ * */ public clas ...

  7. JAVA常见算法题(二十一)

    package com.xiaowu.demo; //求1+2!+3!+...+20!的和. public class Demo21 { public static void main(String[ ...

  8. JAVA常见算法题(二十二)

    package com.xiaowu.demo; //利用递归方法求5!. public class Demo22 { public static void main(String[] args) { ...

  9. JAVA常见算法题(二十)

    package com.xiaowu.demo; /** * * 打印出如下图案(菱形) * * * * @author WQ * */ public class Demo20 { public st ...

随机推荐

  1. bzoj4839 [Neerc2016]Abbreviation

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4839 [题解] pkusc怎么出bzoj原题啊 字符串随便处理一下就行了,大模拟 pkusc ...

  2. python学习笔记 操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  3. springmvc JSR303 Validate 注解式,校验数据

    参考:http://www.cnblogs.com/liukemng/category/578644.html 先进行配置: <!-- 默认的注解映射的支持 --> <mvc:ann ...

  4. Django基础之视图

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  5. web模拟telnet

    https://blog.csdn.net/midion9/article/details/51781402 https://blog.csdn.net/hackstoic/article/detai ...

  6. 使用 gulp 压缩图片

    请务必理解如下章节后阅读此章节: 安装 Node 和 gulp 使用 gulp 压缩 JS 压缩 图片文件可降低文件大小,提高图片加载速度. 找到规律转换为 gulp 代码 规律 找到 images/ ...

  7. 备份文件的python脚本(转)

    作用:将目录备份到其他路径.实际效果:假设给定目录"/media/data/programmer/project/python" ,备份路径"/home/diegoyun ...

  8. 差分数组 and 树上差分

    差分数组 定义 百度百科中的差分定义 //其实这完全和要讲的没关系 qwq 进去看了之后是不是觉得看不懂? 那我简单概括一下qwq 差分数组de定义:记录当前位置的数与上一位置的数的差值. 栗子 容易 ...

  9. DeprecationWarning: current URL string parser is deprecated解决方法

    我最近在使用mongoDB的时候,发现了这个警告语句,纳闷了,按照官方文档的教程去连接数据库还能出错,也是醉了. 后来尝试去阅读相关资料,发现只是需要将{ useNewUrlParser: true ...

  10. IDL软件初步了解

    软件名称:IDL(交互式数据语言Interactive Data Language) 软件类别:是国产软件,语言类,数据分析类,数据可视化类 语言类别:解释型 作用:可以进行数据处理的可视化等,在大数 ...