调整数组顺序使奇数位于偶数前面。

来源:互联网 发布:java数组元素相加 编辑:程序博客网 时间:2024/04/29 19:33
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,

所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 

代码如下:

public class partition {/** * @param PLA * 题目:输入一个整数数组,调整数组中数字的顺序,使得所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 *//*思路: * 设置俩指针i、j,让i从头开始遍历数组,若遇到偶数,则i++,继续; * 若遇到奇数,则将i与j++值调换*/public static void main(String[] args) {// TODO Auto-generated method stubint[] que = new int[]{7,4,4,3,5,7,6,8,4,3};int length = que.length;getPartition(que,length);}private static void getPartition(int[] que, int length) {// TODO Auto-generated method stubint i=0,j=0;while(i<length&&(que[i]&1)==0)i++;//遇到偶数,继续遍历if(i==length)return;while(i<length){if((que[i]&1)==1){swap(que,i,j++);}i++;}for(int t:que){System.out.println(t);}}private static void swap(int[] que, int i, int j) {// TODO Auto-generated method stubint temp = 0;temp = que[i];que[i] = que[j];que[j] = temp;}}

运行结果如下:

7357346844


0 0
原创粉丝点击