数组排列(奇数在前,偶数在后)
2017-04-11 15:38
405 查看
比如[1,2,3,4,5],排列结果可以是[1,5,3,4,2]
代码:
/** * Created by wuchao on 17-3-29. */ import java.util.*; public class test { public static int array[] = {1,2,3,4,5,6,7,8,9,1,3,4,6,3,4,5,5,4,4}; public static void main(String[] args) { sort(array); System.out.println(Arrays.toString(array)); } public static void sort(int[] array){ int len = array.length; if(len==1) return; int i=0,j=len-1; while(i<j){ //从左找第一个偶数,并退出循环 while(isOdd(array[i])&&i<j) i++; //从右找第一个奇数,并退出循环 while(!isOdd(array[j])&&i<j) j--; //奇数和偶数交换 int tmp = array[i]; array[i]=array[j]; array[j]=tmp; } } //判断是否是奇数 public static boolean isOdd(int n){ if((n&1)==1) return true; return false; } }
相关文章推荐
- 传入一个数组进行排列,奇数在前升序,偶数在后降序,在程序执行中不能开辟新数组空间
- 数组:奇数在前,偶数在后,要求顺序不变
- 有序数组:>奇数在前 偶数在后
- 将一个整形数组奇数排列在前偶数排列在后
- 数组排序,奇数在前,偶数在后
- 整数数组,奇数在前,偶数在后
- 数组排序,奇数在前,偶数在后(二)
- 将数组中元素排列为奇数在前偶数在后
- 重新排列数组,使得数组左边的数字为奇数,数组右边的数字为偶数
- 奇数在前,偶数在后,可以有顺序改变
- 题目:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
- 给定一个整数数组,重新排列数组使其左边奇数,右边偶数
- 02_数组偶数行按从大到小排列,奇数行相反
- 160 重新排列数组使得数组左边为奇数,右边为偶数
- 排列数组使得偶数在奇数的前面
- 将一整数序列按奇数在前,偶数在后的顺序重新排放,并要求奇偶两部分分别有序。
- 重新排列数组使得左边为奇数,右边为偶数
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度O(1),时间复杂度为O(n)
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数