/**
* Created by lxw, liwei4939@126.com on 2017/11/3.
* 奇数下标都是奇数或者偶数下标都是偶数
* 最后位置是偶数,就向偶数下标发送,否则就向奇数下标发送
* 如果偶数下标或者奇数下标无法再向右移动,循环结束
*/
public class evenAndOdd {
public void modify(int[] arr){
if(arr ==null || arr.length < 2){
return;
}
int even =0;
int odd = 1;
int end = arr.length - 1;
while (even <= end && odd <= end){
if((arr[end] & 1) == 0){
swap(arr, end, even);
even += 2;
} else {
swap(arr, end, odd);
odd += 2;
}
}
}
public void swap(int[] arr, int index1, int index2){
int tmp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = tmp;
}
public static void main(String[] args){
evenAndOdd tmp = new evenAndOdd();
int[] arr = {1, 2, 5, 2, 4, 6, 8};
tmp.modify(arr);
for (int ele: arr){
System.out.print(ele + " ");
}
System.out.println();
}
}
奇数下标都是奇数或者偶数下标都是偶数
最新推荐文章于 2021-12-12 19:43:03 发布