调整数组顺序使奇数位于偶数前面Java
2016-03-06 11:15
429 查看
题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
package offer;
public class ReorderOddEven {
public static void main(String[] args) {
int[] arr = {4,3,5,6,9,10,12};
reorderOddEven(arr);
}
public static void reorderOddEven(int[] arr){
if(arr==null)return;
int i=0,j=arr.length-1;
while(i<j){
while(i<=arr.length-1&&(arr[i]&0x1)!=0)i++;
while(j>=0&&(arr[j]&0x1)==0)j--;
if(i<j){
swap(arr,i,j);
}
}
print(arr);
}
public static void swap(int[] arr, int i, int j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void print(int[] arr){
for(int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
}
}
package offer;
public class ReorderOddEven {
public static void main(String[] args) {
int[] arr = {4,3,5,6,9,10,12};
reorderOddEven(arr);
}
public static void reorderOddEven(int[] arr){
if(arr==null)return;
int i=0,j=arr.length-1;
while(i<j){
while(i<=arr.length-1&&(arr[i]&0x1)!=0)i++;
while(j>=0&&(arr[j]&0x1)==0)j--;
if(i<j){
swap(arr,i,j);
}
}
print(arr);
}
public static void swap(int[] arr, int i, int j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void print(int[] arr){
for(int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
}
}
相关文章推荐
- leetcode:Container With Most Water 【Java】
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-005- 异常处理@ResponseStatus、@ExceptionHandler、@ControllerAdvice
- Java 回顾笔记_包
- 用Eclipse编写Java时调用algs4.jar和stdlib.jar解决StdOut和StdIn无法被识别的问题
- Java学习笔记
- 20145324 《Java程序设计》第1周学习总结
- Java的native方法
- java计划任务调度框架quartz结合spring实现调度的配置实例代码分享
- struts2 中redirectAction如何传递参数!
- 简单的springmvc的maven项目创建
- Java设计模式--观察者模式
- 20145214 《Java程序设计》第1周学习总结
- 第20课 :SPARK Top N彻底解秘 TOPN 排序(Scala)SPARK分组TOPN 算法(JAVA) 必须掌握!
- Java复习笔记(四)——Java基本类型的类型转换
- HDOJ——2002计算两点间的距离(java版)
- Spring MVC 数据绑定多个对象
- Java 类加载器
- HDOJ——2001 ASCII码排序(java 版)
- Java异常
- Java类加载器的工作原理