选择排序递归算法

时间:2021-07-14 04:12:56
package week5;

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 .........................