package codingforoffer.question14; /** * 调整数组顺序使奇数位位于偶数前面 * @author admin * */ public class ReorderOddEven { /** * 经典 * 思路1:按照快速排序算法,一个指向偶数第一个开头的角标,一个指向新数字的角标,当遍历到奇数时,交换,并使角标加1 * @return */ public void reorder(int[] arr){ int j=0; for (int i = 0; i < arr.length; i++) { if(arr[i]%2==1){ //如果是奇数,如果大于0等,如果整除3等就交换。这一类通用问题,修改判断条件即可。 int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; j++; } } } public static void main(String[] args) { ReorderOddEven roe=new ReorderOddEven(); int[] arr={3,4,5,2,3,4,5,34,6,743,34,23,432,2,4,5,23423,4}; roe.reorder(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } } }