首页 > 代码库 > 【数组】调整数组顺序使奇数位于偶数前面

【数组】调整数组顺序使奇数位于偶数前面

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 }

 

【数组】调整数组顺序使奇数位于偶数前面