博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
013 调整数组顺序使奇数位于偶数前面
阅读量:4331 次
发布时间:2019-06-06

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

1.题目

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

 

2.第一种方式思路

  这里最常见的就是弄一个新的数组

 

3.程序

1  /** 2      * 新建一个新的数组 3      * @param array 4      */ 5     public static void reOrderArray(int [] array) { 6         if(array.length==0||array.length==1) return; 7         int oddCount=0,oddBegin=0; 8         int[] newArray=new int[array.length]; 9         for(int i=0;i

 

4.程序二思路分析

  相对位置不变--->保持稳定性;奇数位于前面,偶数位于后面 --->存在判断,挪动元素位置;

  这些都和内部排序算法相似,考虑到具有稳定性的排序算法不多,例如插入排序,归并排序等;这里采用插入排序的思想实现。
 
5.程序
1 public static void reOrderArray2(int [] array) { 2         //相对位置不变,稳定性 3         //插入排序的思想 4         int m = array.length; 5         int k = 0;//记录已经摆好位置的奇数的个数 6         for (int i = 0; i < m; i++) { 7             if (array[i] % 2 == 1) { 8                 int j = i; 9                 while (j > k) {         //j >= k+110                     int tmp = array[j];11                     array[j] = array[j-1];12                     array[j-1] = tmp;13                     j--;14                 }15                 k++;16             }17         }18         System.out.print(Arrays.toString(array));19     }

 

6.全部程序

1 package first; 2  3 import java.util.Arrays; 4  5 public class ReOrderArray { 6     public static void main(String[] args){ 7         int[] arr={1,3,4,5,6,7}; 8         reOrderArray2(arr); 9     }10 11     /**12      * 新建一个新的数组13      * @param array14      */15     public static void reOrderArray(int [] array) {16         if(array.length==0||array.length==1) return;17         int oddCount=0,oddBegin=0;18         int[] newArray=new int[array.length];19         for(int i=0;i
k) { //j >= k+142 int tmp = array[j];43 array[j] = array[j-1];44 array[j-1] = tmp;45 j--;46 }47 k++;48 }49 }50 System.out.print(Arrays.toString(array));51 }52 }

 

 

转载于:https://www.cnblogs.com/juncaoit/p/10424852.html

你可能感兴趣的文章
个人冲刺09
查看>>
nodejs利用string-random生成指定的随机字符串
查看>>
UVA1025---A Spy in the Metro(DP)
查看>>
Java入门:基础算法之产生随机数
查看>>
poj3259 Wormholes【最短路-bellman-负环】
查看>>
CH5302 金字塔【区间DP】
查看>>
poj3585 Accumulation Degree【树形DP】【最大流】
查看>>
PAT甲1115 Counting Nodes in a BST【dfs】
查看>>
贝叶斯统计(Bayesian statistics) vs 频率统计(Frequentist statistics):marginal likelihood(边缘似然)...
查看>>
error LNK2001: 无法解析的外部符号 解决方法
查看>>
CRM INBOX 查询结果增强字段
查看>>
python面试题-20190319
查看>>
css 优先级
查看>>
Beta1
查看>>
【MFC】基于windows media player的音乐播放器
查看>>
重启Linux机器异常的解决方法
查看>>
NUnit使用方法
查看>>
Direct3d 设备丢失 (device lost) (转载)
查看>>
MovieLens数据挖掘练习
查看>>
【转】属性与字段的区别
查看>>