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]+" ");
}
}
}


 


本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究