文档章节

【九度OJ1516】|【剑指offer14】调整数组顺序使奇数位于偶数前面

aqia358
 aqia358
发布于 2013/10/18 11:05
字数 353
阅读 119
收藏 0
题目描述:

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

输入:

每个输入文件包含一组测试案例。
对于每个测试案例,第一行输入一个n,代表该数组中数字的个数。
接下来的一行输入n个整数。代表数组中的n个数。

输出:

对应每个测试案例,
输入一行n个数字,代表调整后的数组。注意,数字和数字之间用一个空格隔开,最后一个数字后面没有空格。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

/**
 * 调整数组顺序使奇数位于偶数前面
 * @author aqia358
 * 
 */
public class Main {

	public static void merge(int[] a1, int p1, int a2[], int p2){
		int m = 0;
		int n = 0;
		while(m < p1){
			System.out.print(a1[m++]+" ");
		}
		while(n < p2 - 1){
			System.out.print(a2[n++]+" ");
		}
		System.out.print(a2[n]);
	}
	public static void main(String[] args) throws IOException {
		StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		while(st.nextToken() != st.TT_EOF){
			int n = (int) st.nval;
			int[] a1 = new int[n];
			int[] a2 = new int[n];
			int p1 = 0;
			int p2 = 0;
			int count = 0;
			while(count < n){
				st.nextToken();
				int t = (int) st.nval;
				if(t%2 != 0){
					a1[p1++] = t;
				}else{
					a2[p2++] = t;
				}
				count++;
			}
			merge(a1,p1,a2,p2);
		}
	}
}



© 著作权归作者所有

共有 人打赏支持
aqia358
粉丝 6
博文 82
码字总数 30297
作品 0
海淀
程序员
私信 提问
调整数组顺序使奇数位于偶数前面(归并排序java)

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

caoxiaohong1005
2018/04/13
0
0
[剑指offer] 调整数组顺序使奇数位于偶数前面

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

繁著
2018/06/28
0
0
面试 6:调整数组顺序使奇数位于偶数前面

今天给大家带来的是 《剑指 Offer》习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考。 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所有奇...

nanchen2251
2018/07/11
0
0
面试 6:拓展性更好的代码,更容易拿到 Offer

编辑文章 今天给大家带来的是 《剑指 Offer》习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考。 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,...

南尘
2018/07/11
0
0
面试 6:拓展性更好的代码,更容易获得 Offer

今天给大家带来的是 《剑指 Offer》习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考。 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所有奇...

nanchen2251
2018/07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
33分钟前
0
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
1
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部