思路:
选择排序: 1、找到序列中最小数(获得其编号),将其与第一个位置的数交换; 2、找到序列中除最小数之外的最小数(获取编号),将其与第二个位置的数交换; 3、以此类推,获得从小到大的数据。
实现代码:
1 //选择排序(从小到大) 2 public static void main(String[] args) { 3 int min;//记录编号 4 int[] a={12,33,1,44,22,12,8,24,31};//要排序的数据 5 int len=a.length;//数据长度 6 7 if(len<=0|| a ==null){ 8 return; 9 }//如果没有数据,则退出 10 11 for(int j=0;j<len-1;j++){//查询第j个最小数 12 min=j; 13 for(int i=j+1;i<len;i++){ 14 if(a[min]>a[i]){//如果序列i的数据<序列min处的数据,让min=较小数的编号 15 min=i; 16 } 17 } 18 if(min!=j){//有比序列j处更小的数,则交换 19 int temp=a[j]; 20 a[j]=a[min]; 21 a[min]=temp; 22 } 23 24 } 25 for(int i=0;i<len;i++){//数据输出 26 System.out.print(a[i]+" "); 27 } 28 }