import org.junit.Test;
/*
* 选择排序递归算法
* @author cainiaozeng
* */
public class SelectSort {
@Test
public void test(){
int[] A = {12,45,2,1,89,64,25,31};
selectsort(A,0);
}
public void selectsort(int[] A,int pos){
int[] Aa = A; //Aa用来存放已经排好序的数组
int length = A.length;
for(int i=pos; i<length-1; i++){
if(Aa[i+1] < Aa[pos]){
int temp = Aa[i+1];
Aa[i+1] = Aa[pos];
Aa[pos] = temp;
}
}
for(int i=0;i<Aa.length;i++){
System.out.print(Aa[i]+" ");
}
System.out.println(".........................");
if(pos < length){ //递归入口,当条件不满足时,递归结束
selectsort(Aa,pos+1);
}
}
}
运行结果:
1 45 12 2 89 64 25 31 .........................
1 2 45 12 89 64 25 31 .........................
1 2 12 45 89 64 25 31 .........................
1 2 12 25 89 64 45 31 .........................
1 2 12 25 31 89 64 45 .........................
1 2 12 25 31 45 89 64 .........................
1 2 12 25 31 45 64 89 .........................
1 2 12 25 31 45 64 89 .........................
1 2 12 25 31 45 64 89 .........................