首页 > 代码库 > 【数组】调整数组顺序使奇数位于偶数前面
【数组】调整数组顺序使奇数位于偶数前面
1. 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。
1 /** 2 * 调整数组顺序使奇数位于偶数前面 3 * 4 * @author 5 * 6 */ 7 public class Solution { 8 9 public static void order(int[] array) {10 11 if (null == array || array.length == 0 || array.length == 1) {12 return;13 }14 15 int start = 0; // 从头开始向后移动的指针16 int end = array.length - 1; // 从尾开始向前移动的指针17 18 while (start < end) {19 20 // 满足前偶后奇进行交换21 if ((array[start] & 1) == 0 && ((array[end] & 1) == 1)) {22 swap(array, start, end);23 }24 25 if ((array[start] & 1) == 1) {26 start++;27 }28 29 if ((array[end] & 1) == 0) {30 end--;31 }32 33 }34 }35 36 public static void swap(int[] array, int m, int n) {37 int temp;38 temp = array[m];39 array[m] = array[n];40 array[n] = temp;41 }42 43 public static void main(String[] argss) {44 45 int[] array = { 1, 2, 3, 4, 5, 6, 7 };46 47 System.out.println("调整前:");48 for (int i : array) {49 System.out.print(i + " ");50 }51 52 order(array);53 54 System.out.println("\n调整后:");55 for (int i : array) {56 System.out.print(i + " ");57 }58 }59 }
调整前:1 2 3 4 5 6 7 调整后:1 7 3 5 4 6 2
2.输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
1 import java.util.List; 2 3 public class Solution 4 { 5 public void reOrderArray(int[] array) 6 { 7 if (array.length == 0) 8 { 9 return;10 }11 12 int temp = 0;13 boolean flag;14 15 //类似插入排序,每次将奇数插入到所有偶数的前面16 for (int i = 0; i < array.length; i++)17 {18 flag = true;19 if ((array[i] & 1) == 1)20 {21 for (int j = i; flag && j>0; j--)22 {23 if ((array[j - 1] & 1) == 0)24 {25 temp = array[j];26 array[j] = array[j - 1];27 array[j - 1] = temp;28 }else{29 flag = false;30 }31 }32 }33 }34 35 }36 }
【数组】调整数组顺序使奇数位于偶数前面
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。