java选择排序法

来源:百度知道 编辑:UC知道 时间:2024/06/16 16:40:48
java
把数组{25,15,42,16,12,36}按从大到小输出,用选择排序法,怎么做啊?帮帮忙的,不用冒泡,只用选择排序法,因为排序有两种,我已经知道冒泡了。想了解下选择,孩请大家帮帮忙的,最后给出程序,并加上注释,谢谢诶啦

//选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
public static void main(String[] args) {
int[] a = {25,15,42,16,12,36};
int max = 0;
int tmp = 0;
for(int i=0;i<a.length;i++){
max = i;//
/**查找第 i大的数,直到记下第 i大数的位置***/
for(int j=i+1;j<a.length;j++){
if(a[max]<a[j])
max = j;//记下较大数位置,再次比较,直到最大
}
/***如果第 i大数的位置不在 i,则交换****/
if(i!=max){
tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}

不好意思哦,上次发错了,幸好楼主及时提醒,
现在再发过一次,希望您满意。

这是一个很简单的选择排序的方法,加了一些重点步骤的注释