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);
} }
运行结果:

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

JAVA常见算法题(二十七)的更多相关文章
- JAVA常见算法题(二十八)
package com.forezp.util; import java.util.Arrays; /** * 两个int数组,都是从小到大的的排列,请合并为一个新的数组,也是从小到到大的排列, * ...
- JAVA常见算法题(二十六)
package com.xiaowu.demo; import java.util.Scanner; /** * Java实现将阿拉伯数字转为汉字 * * @author WQ * */ public ...
- JAVA常见算法题(二十五)
/** * Java实现中文数字转换为阿拉伯数字 * * * @author WQ * */ public class Demo26 { public static void main(String[ ...
- JAVA常见算法题(二十九)
package com.forezp.util; import java.util.Scanner; /** * 判断输入的5个字符串的最大长度,并输出 * * * @author Administr ...
- JAVA常见算法题(二十四)
package com.xiaowu.demo; //一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. public class Demo24 { public ...
- JAVA常见算法题(二十三)
package com.xiaowu.demo; /** * 给一个不多于5位的正整数,要求:①求它是几位数:②逆序打印出各位数字. * * * @author WQ * */ public clas ...
- JAVA常见算法题(二十一)
package com.xiaowu.demo; //求1+2!+3!+...+20!的和. public class Demo21 { public static void main(String[ ...
- JAVA常见算法题(二十二)
package com.xiaowu.demo; //利用递归方法求5!. public class Demo22 { public static void main(String[] args) { ...
- JAVA常见算法题(二十)
package com.xiaowu.demo; /** * * 打印出如下图案(菱形) * * * * @author WQ * */ public class Demo20 { public st ...
随机推荐
- 应对ubuntu linux图形界面卡住的方法
有的时候,我的ubuntu图形界面会卡住,当然这个时候你可以重新启动,不过最好的办法应该是结束这个桌面进程 那桌面卡住了怎么来结束桌面进程呢? 这时候就需要打开tty了 按下键盘ctrl+alt+f1 ...
- C++异常~二 转
Linux 下 C++ 异常处理技巧 处理固有语言局限性的四种技术 处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们.学习各种利用异常的方法,您就可以生产更可靠的应 ...
- 【linux】kill ;杀死某一用户下的所有进程
[linux]kill :杀死某一用户下的所有进程 https://my.oschina.net/u/347414/blog/600854
- js 触发LinkButton点击事件,执行后台方法
页面 <asp:LinkButton ID="lbtButton" runat="server" CssClass="lbtButton&qu ...
- 程序员面试宝典 笔记(第六章 预处理 const 和sizeof())
void main() { "; cout<< cout<< "; cout<< cout<<strlen(ss2)<< ...
- 请求参数中的"+"号为什么会丢失,如何保证参数完整
最近在开发中碰见一个问题,后端代码调用接口,在请求端参数没有任何问题,但是当接口接收到参数时,其中的加号全部变为了空格. 在查阅资料后发现是URLDecoder方法的问题,以下是URLDecoder的 ...
- selenium+python在mac环境上的搭建【转载】
前言 mac自带了python2.7的环境,所以在mac上安装selenium环境是非常简单的,输入2个指令就能安装好 需要安装的软件: 1.pip 2.selenium2.53.6 3.Firefo ...
- sqlalchemy源代码阅读随笔(4):url。py 阅读
在_to_string中,有 _rfc_1738_quote(text): 这个函数.这个主要是遵循 RFC 1738的规则.对传入的信息(主要是用户名或者密码)进行格式匹配.其代码就一行: retu ...
- Activiti 6.0 入门篇
从Activiti网站下载Activiti UI WAR文件(或百度云) 将下载的activiti-app.war复制到Tomcat的webapps目录. 启动Tomcat 打开浏览器并转到 http ...
- ros pcl sensor::pointcloud2 转换成pcl::pointcloud
#include <pcl_conversions/pcl_conversions.h> #include <pcl/point_types.h> #include <p ...