zoukankan      html  css  js  c++  java
  • 剑指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+" ");
    		}
    	}
    }
    

      

      

  • 相关阅读:
    runc create container 流程分析
    cri-o pod 创建源码分析
    hyperstart 容器创建流程分析
    MIT jos 6.828 Fall 2014 训练记录(lab 4)
    python 邮件发送 脚本
    jvm: 理解gc日志
    jvm:垃圾收集器
    GC 垃圾收集
    jvm结构
    Java transient关键字使用小记
  • 原文地址:https://www.cnblogs.com/blzm742624643/p/12237652.html
Copyright © 2011-2022 走看看