在数组中重复两趟扫描。第一趟扫描选择所有的数据项对,a[j]和 a[j+1], j 是奇数(j=1, 3, 5,…)。如果它们的关键字的值次序颠倒,就交换它们。第二趟扫描对所有的偶数数据项进行同样的操作(j=0, 2, 4, 6,…)。 重复进行这样两趟的排序直到数组全部有序。
public class Main { //奇偶排序算法
public static void main(String[] args) {
int[] numbers = new int[]{12,33,45,33,13,55,34,7,6};
Main.oddEventSort(numbers);
for(int i=0; i<numbers.length; i++){
System.out.print(numbers[i]+" ");
}
}
private static void oddEventSort(int[] numbers){
int temp;
for(int i=numbers.length-1; i>numbers.length/2-1; i--){
for(int j=1; j<=i; j+=2){
if(j==numbers.length-1)break;
if(numbers[j]>numbers[j+1]){
temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
for(int j=0; j<=i; j+=2){
if(j==numbers.length-1)break;
if(numbers[j]>numbers[j+1]){
temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}
}
}