调整数组顺序使奇数位于偶数前面
题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
实现语言:Java
public class Solution { public void reOrderArray(int [] array) { int len=array.length; if(len==0||array==null){ return; } int i=0; int j=0; while(i<len){ while(i<len&&!isEven(array[i])){ ++i; } j=i+1; while(j<len&&isEven(array[j])){ ++j; } if(j<len){ int tmp=array[j]; for(int k=j-1;k>=i;--k){ array[k+1]=array[k]; } array[i++]=tmp; }else{ break; } } } private boolean isEven(int num){ if(num%2==0){ return true; } return false; } }
实现语言:Java
类似冒泡算法,前偶后奇数就交换
public class Solution { public void reOrderArray(int [] array) { if(array==null||array.length==0){ return; } for(int i=0;i<array.length;++i){ for(int j=array.length-1;j>i;--j){ if(array[j]%2==1&&array[j-1]%2==0){ array[j-1]=array[j]+array[j-1]; array[j]=array[j-1]-array[j]; array[j-1]=array[j-1]-array[j]; } } } } }