1、问题
调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
2、分析
怎 样来进行调整呢?
1 4 2 3 6 7 5 8
给两个变量,一个i指向数组的第一个元素,一个j指向数组的最后一个元素
如果i是奇数,则i++;如果j是偶数,则j–;
如果不是的话,那就进行交换,i++,j–
i是偶数,j是奇数,就交换,则将奇数放在了偶数前面
3、代码演示
package demomethod03;
/**
* 奇数位于偶数之前
* 调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
* 创建一个数组
* 定义一个方法来进行奇数和偶数的调整
* 方法三要素:
* 返回值类型:int[]
* 方法名称:swap
* 参数列表:int[] nums
*
* 怎样来进行调整呢?
* 1 4 2 3 6 7 5 8
* 给两个变量,一个i指向数组的第一个元素,一个j指向数组的最后一个元素
* 如果i是奇数,则i++;如果j是偶数,则j--;
* 如果不是的话,那就进行交换
* i是偶数,j是奇数,就交换,则将奇数放在了偶数前面
*/
public class SwapNums {
public static void main(String[] args) {
int[] nums=new int[]{1,2,3,4,5,6};
int[] a=swap(nums);
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}
public static int[] swap(int[] nums) {
int i=0;
int j=nums.length-1;
while(i<j){
if(nums[i]%2==1){
i++;
}else if(nums[j]%2==0){
j--;
} else{
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
i++;
j--;
}
}
return nums;
}
}
4、运行结果