题目描述

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

思路一:

首先这个算法我刚刚开始想到的办法是我将这个数组有多少个奇数求出来,然后我就知道偶数从数组哪个地方开始放数据,比如int[] array = {1, 2, 5, 4, 6, 8, 7},这个时候奇数有三个,那么偶数就从这个数组的第四个开始存,奇数从第0个开始存。那么此时我就遍历这个数组,然后发现一个奇数就和该数组的奇数位置换,这样就会导致最后相对位置发生变化,所以这个解决办法就是创建一个和array这个数组一样大小的数组,然后遍历传进来的数组,遇到奇数则存到前面部分,遇到偶数则存到后面的部分,前面部分和后面部分的分界线就是之前求的这个奇数个数。

综合来说就是:遍历这个数组得到哪些位置应该存奇数,哪些位置应该存偶数,然后在遍历这个数组,遇到奇数则放到依次放到奇数的位置,遇到偶数则依次放到偶数的位置。

实现:

public class Solution {
public void reOrderArray(int [] array) {
int length = array.length;
int count = 0;
if(length == 0){
return;
}
for(int i = 0; i

思路二:

这个方法则是利用类似冒泡的方法,从这个数组的最后往前一个一个进行比较,如果前偶后奇,则两个数据交换位置。否则位置不变。

实现:

public void reOrderArray(int [] array) {
int length = array.length;
for(int i = 0; i 0; j --){
if(array[j] % 2 == 1 && array[j - 1] % 2 == 0){
int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}

原 java调整数据顺序是奇数位于偶数的前面(思路与实现)的更多相关文章

  1. 【Java】 剑指offer(21) 调整数组顺序使奇数位于偶数前面

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇 ...

  2. 剑指offer编程题Java实现——面试题14调整数组顺序使奇数位于偶数之前

    题目: 输入一个整数数组,实现一个函数来调整该数组中数组的顺序,使得所有的奇数位于数组的前半部分,偶数位于数组的后半部分. 解题思路:数组中维护两个指针,第一个指针初始化时候指向数组头部,第二个指针初 ...

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

    题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 分析 事实上,这个题比较简单,很多种方式都可以实现,但是其时间复杂度或空间复 ...

  4. C++版 - 剑指offer面试题14: 调整数组顺序使奇数位于偶数前面

    题目: 调整数组顺序使奇数位于偶数前面 热度指数:11843 时间限制:1秒 空间限制:32768K 本题知识点: 数组 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇 ...

  5. 剑指Offer - 九度1516 - 调整数组顺序使奇数位于偶数前面

    剑指Offer - 九度1516 - 调整数组顺序使奇数位于偶数前面2013-11-30 02:17 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部 ...

  6. 剑指Offer:调整数组顺序使奇数位于偶数前面【21】

    剑指Offer:调整数组顺序使奇数位于偶数前面[21] 题目描述 输入一个整形数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 解题分析 使用插 ...

  7. 【剑指Offer面试题】 九度OJ1516:调整数组顺序使奇数位于偶数前面

    题目链接地址: http://ac.jobdu.com/problem.php?pid=1516 题目1516:调整数组顺序使奇数位于偶数前面 时间限制:1 秒内存限制:128 兆特殊判题:否提交:2 ...

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

    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Offer 21 这题的解法其实是考察快慢指针和头尾指针. package com.walegarrett.offer; /** * @Aut ...

  9. 【剑指offer】77.调整数组顺序使奇数位于偶数前面

    77.调整数组顺序使奇数位于偶数前面 知识点:数组:快速排序:冒泡排序: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部 ...

随机推荐

  1. POJ 1036

    #include<iostream> #include<algorithm> #define MAXN 205 using namespace std; struct node ...

  2. JavaScript函数理解

    本文参考自简书javaScript之函数详解 这里从函数的构造函数开始. 在js中,函数都是对象,它们都是Function构造函数的实例.因此,类似Java中的对象,函数名可以理解为指向该Functi ...

  3. linux中的tar命令的使用

    参考网址: https://www.cnblogs.com/newcaoguo/p/5896975.html https://www.cnblogs.com/xccjmpc/p/6035397.htm ...

  4. 数据输入——生成你需要的echart图(世界地图,气泡图)

    上一篇文章介绍了:堆积柱状图.扇形图.嵌套环形图,现在来介绍一下:世界地图和气泡图 1.世界地图 http://echarts.baidu.com/examples/editor.html?c=map ...

  5. Spring Security构建Rest服务-0800-Spring Security图片验证码

    验证码逻辑 以前在项目中也做过验证码,生成验证码的代码网上有很多,也有一些第三方的jar包也可以生成漂亮的验证码.验证码逻辑很简单,就是在登录页放一个image标签,src指向一个controller ...

  6. [转发] win8安装mindget mindmanger

    win8安装mindget mindmanger   1安装MindManager时,显示安装Visual C++ 2005 Redistributable时报错  解决方法:1.把安装程序移动到没有 ...

  7. Mina的客户端

    (一) package client; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.a ...

  8. Names and Identifiers

    JLS:https://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.2 Not all identifiers in a pr ...

  9. vue2.0实现购物车功能

    购物车功能是一件比较繁琐的事情,逻辑功能太多,今天就用vue2.0实现一个简单的购物车功能,数据都本地自己写的假数据 功能列表: 1.全选和单选结算 2.减少和增加数量 3.商品的删除 界面搭建以及布 ...

  10. tomcat启动(四)Catalina分析-server的init()方法

    上一回load()方法解析讲到xml解析完成. load()内部接下来会获取server getServer().setCatalina(this); 这个server从createStartDige ...