本文正在参加「Java主题月 - Java 刷题打卡」,详情查看 活动链接
1、算法思想
将待排序序列分为两部分,一部分为有序序列,另一部分为无序序列。第一趟:从 a[0]
到 a[n-1]
中找到最小的数 a[i]
,然后将 a[i]
与 a[0]
交换,第二趟:从 a[1]
到 a[n-1]
中找到最小的数 a[j]
,然后将 a[j]
与 a[1]
交换,第三趟:从 a[2]
到 a[n-1]
中找到最小的数 a[k]
,然后将 a[k]
与 a[2]
交换 ……
2、实例分析
{13,15,37,89,60,39,12,109,56,72}
第一趟 :12 {15,37,89,60,39,13,109,56,72}
第二趟:12 ,13 {37,89,60,39,15,109,56,72}
第三趟:12 ,13 ,15 {89,60,39,37,109,56,72}
……
3、算法代码
/**
* 选择排序
* @author xcbeyond
*
*/
public class SelectSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] ={13,15,37,89,60,39,12,109,56,72} ;
int i;
int j;
for(i = 0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println();
for(i = 0;i<a.length;i++){
int min = a[i];
for(j = i+1;j<a.length;j++){
if(min>a[j]){
int temp;
temp = min;
min = a[j];
a[j] = temp;
}
}
a[i] = min;
}
for(i = 0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}