剑指offer:调整数组顺序使奇数位于偶数前面

Posted blzm742624643

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer:调整数组顺序使奇数位于偶数前面相关的知识,希望对你有一定的参考价值。

一、题目描述

  输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

二、思路

  设置一个变量start标志为调整好的最后一个奇数的后一个位置,遍历数组,当遍历到奇数时将其置换到start,然后start++。

 

public class 调整数组顺序使奇数位于偶数前面 {
	//将奇数抽到前面
    public static void reOrderArray(int [] array) {
        int start = 0;//最后一个奇数的后一个位置
        for(int i=0;i<array.length;i++){
        	if(array[i]%2==1){
        		moveArray(array, start, i);
        	}
        }
    }
    
    //将y位置的元素移动到x,然后原本x~y-1的元素向后移动一位
    public static void moveArray(int[] array,int x,int y){
    	int temp = array[y];
    	for(int i=y;i>x;i--){
    		array[i] = array[i-1];
    	}
    	array[x] = temp;
    }
    
    public static void main(String[] args) {
		int[] nums = {1,2,3,4,5};
		//reOrderArray(nums);
		moveArray(nums, 1, 2);
		for(int temp:nums){
			System.out.print(temp+" ");
		}
	}
}

  

  

以上是关于剑指offer:调整数组顺序使奇数位于偶数前面的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 的详细题解

剑指Offer调整数组顺序使奇数位于偶数前面

剑指offer:调整数组顺序使奇数位于偶数前面

剑指offer 13.调整数组顺序使奇数位于偶数前面

剑指Offer-Java-调整数组顺序使奇数位于偶数前面

剑指Offer-代码的完整性面试题21:调整数组顺序使奇数位于偶数前面