用冒泡排序法对偶数下标的数组元素进行升序排列用选择排序法对奇数下标的数组元素

2024-11-04 23:14:19
推荐回答(2个)
回答1:

先把元数组分离成偶数行和奇数行两个独立的数组。
然后分别排序,偶数数组升序,奇数数组降序。
再把两个数组结合起来。
就行了。

也可以用普通的冒泡排序法,只是把“相邻”比较变成“相隔1位”比较,比较的时候再判断一下奇偶,注意交换的时候别换错了位置就行了。

回答2:

冒泡的原理:相邻的元素比较,不停的交换
选择排序原理:标记一个暂时的最大/小元素,循环比较,然后变换最大/小元素标记位置。循环完后,交替位置。
我写了一个java实现你这个要求的程序,你可以看看:
public class ArraySort {

/**
* @param args
*/
public static void main(String[] args) {
int array[] = {2,6,4,3,10,7,8,1,9,5};
//偶数组 冒泡排序
for(int i=0;i<10;i=i+2){
for(int j=8;j>=i;j=j-2){
if(array[j] int temp =array[i];
array[i] = array[j];
array[j] = temp;
}
}
// System.out.println(array[i]);//偶数下标元素排出来的升序
}
//奇数组 选择排序
for(int i=1;i<10;i=i+2){
int flag = i;
for(int j=i;j<10;j=j+2){
if(array[j]>array[flag]){
flag = j;
}
}
if(flag!=i){
int temp =array[i];
array[i] = array[flag];
array[flag] = temp;
}
// System.out.println(array[i]);//奇数下标元素排出来的降序
}
//打印结果
for(int i=0;i<10;i++){
System.out.print(array[i]+" ");
}
}

}