博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。...
阅读量:5840 次
发布时间:2019-06-18

本文共 1140 字,大约阅读时间需要 3 分钟。

如果不考虑奇数和奇数,偶数和偶数之间的相对位置不变。那么只需要两个指针分别指向数组的头和尾,依次比较。

1. 如果头指针指向的数组位置为奇数,那么就判断尾指针指向的数组位置的奇偶性。如果是奇数,则头指针后移一个位置,如果是偶数,则尾指针前移一个位置。

2. 如果头指针指向的数组位置为偶数,那么就判断尾指针指向的数组位置的奇偶性。如果是奇数,则交换头尾指针指向的数组元素,如果是偶数,则尾指针前移一个位置。

代码如下:

public class Q13_ReOrderArray {    public static void main(String[] args) {        int []array = {1,2,3,4,5,6,7,8,9,10,11,12,13};        reOrderArray(array);        for(int i=0;i

 

如果要保证奇数和奇数,偶数和偶数之间的相对位置不变。

首先寻找第一个奇数,并将其放在0号位置。然后将第一个奇数之前的元素全部往后移一位。

依次在第一个奇数之后的元素中寻找奇数,并做移动操作。就可以保证原来的相对顺序。

public class q13_reOrderArray {    public static void main(String[] args) {        int []array = {2,4,6,1,3,5,7};        reOrderArray2(array);        for(int i=0;i
0;ti--) { array[ti]=array[ti-1];//将第一个奇数之前的所有元素往后移一个位置 } array[0] = temp;//将第一个奇数放到array[0]位置 j=i; break; } } for(++j;j
m;tj--) { array[tj]=array[tj-1]; } array[++m]=temp; } } }}

 

转载于:https://www.cnblogs.com/lixiaolun/p/5057332.html

你可能感兴趣的文章
深入理解java注解的实现原理
查看>>
vsFTPd的553 Could not create file 错误
查看>>
view中使用监听
查看>>
python笔记(1.4-1.5)
查看>>
gitlab的启动报错问题
查看>>
无懈可击之完美dns架构
查看>>
corosync/openais+pacemaker实现web的高可用性
查看>>
mono android 非UI线程操作UI线程
查看>>
elk---日志收集
查看>>
数据库开发 - SQL注入与防范
查看>>
Symfony 2.2 新的url生成选项
查看>>
软件更新要求
查看>>
MySQL Replication主主复制—(实例)
查看>>
javascript的使用(2)函数的使用
查看>>
zookeeper下载安装
查看>>
关于java new 创建对象的问题
查看>>
Android性能优化
查看>>
iOS开发中常见错误
查看>>
log4j.properties配置说明
查看>>
【“零起点”--百度地图手机SDK】如何创建一张地图
查看>>