package 算法设计与分析;
import java.util.Scanner;
public class OddEvenSort {
public void getOddEvenSort1(int[] A){
//一头一尾指针往中间扫描,奇数偶数排序
if(A.length == 1)//判断数组的长度
return;
int begin = 0;
int end = A.length - 1;
while(begin < end){//数组的左下标小于右下标时
if(A[begin] % 2 == 1) //当A[begin]为奇数时
begin++;
else if(A[end] % 2 == 0) //当A[end] 为偶数时
end--;
else //当A[begin]不是奇数且A[end]不是偶数时
swap(A,begin,end);
}
}
//交换数组A的m位置和n位置上的值
public void swap(int[] A,int m,int n){
int temp = A[m];
A[m] = A[n];
A[n] = temp;
}
public static void main(String[] args){
OddEvenSort test = new OddEvenSort();
System.out.println("请输入9数字: ");
Scanner input=new Scanner(System.in);
int[] A = new int[9];//创建一个长度为九的数组
for (int i = 0; i < A.length; i++) {
A[i] = input.nextInt();//依次把从键盘中输入的数字存入到数组中
}
test.getOddEvenSort1(A);//调用判断奇数偶数的方法
System.out.println("一头一尾指针往中间扫描结果:");
for(int i = 0;i < A.length;i++)
System.out.print(A[i]+" ");
}
}