首页 > 代码库 > Java 选择排序

Java 选择排序

    选择排序,每次将最小的数选出来,反复执行两个动作,比较、交换,放在最左边,依次类推,用数组实现选择排序

    交换两个数

public class SwapTwo {

    /**
     *@author chengdu
     *@param args
     */
    private int[] bubble;
    
    public void setBubble(int[] bubble){
        this.bubble = bubble;
    }
    public int[] getBubble(){
        return bubble;
    }
    
    public void swapTwoNumber(int x, int y){   //传入数组的索引位置,交互数组的两个值
        int lenbubble = bubble.length;
        if(x > lenbubble - 1 || y > lenbubble - 1){
            System.out.println("数组越界");
        } 
        else {
            int temp;
            if(bubble[x] > bubble[y]){
                temp = bubble[x];
                bubble[x] = bubble[y];
                bubble[y] = temp;
            }
        }
        System.out.println("从小到大依次是:"+bubble[x]+","+bubble[y]);
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SwapTwo st = new SwapTwo();
        int[] bubble = {1, 9, 8, 5, 2, 6, 4, 3, 7};
        System.out.println(bubble.length);
        st.setBubble(bubble);
        st.swapTwoNumber(0, 1);
    }
}

 选择排序

public class SelectSort {

    /**
     * @author chengdu
     * @param args
     */
    private SwapTwo swaptwo;
    
    public void setSwaptwo(SwapTwo swaptwo){
        this.swaptwo = swaptwo;
    }
    public SwapTwo getSwaptwo(){
        return swaptwo;
    }
    
    public void selectSortMethod(int[] array){
        int pos; //次数
        int lenarray = array.length;
        swaptwo.setBubble(array);
        for(pos=1; pos < lenarray; pos++){
            System.out.println("次数--------"+pos);
            for(int i=pos-1; i < lenarray - 1; i++){
                swaptwo.swapTwoNumber(pos - 1, i+1);
            }
        }
        
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SwapTwo swaptwo = new SwapTwo();
        SelectSort selectSort = new SelectSort();
        selectSort.setSwaptwo(swaptwo);
        int[] array = {1, 9, 6, 3, 4, 2, 5, 13, 15, 10};
        selectSort.selectSortMethod(array);
        for(Integer i : array){
            System.out.println(i);
        }

    }

}

执行:

次数--------1
从小到大依次是:1,9
从小到大依次是:1,6
从小到大依次是:1,3
从小到大依次是:1,4
从小到大依次是:1,2
从小到大依次是:1,5
从小到大依次是:1,13
从小到大依次是:1,15
从小到大依次是:1,10
次数--------2
从小到大依次是:6,9
从小到大依次是:3,6
从小到大依次是:3,4
从小到大依次是:2,3
从小到大依次是:2,5
从小到大依次是:2,13
从小到大依次是:2,15
从小到大依次是:2,10
次数--------3
从小到大依次是:6,9
从小到大依次是:4,6
从小到大依次是:3,4
从小到大依次是:3,5
从小到大依次是:3,13
从小到大依次是:3,15
从小到大依次是:3,10
次数--------4
从小到大依次是:6,9
从小到大依次是:4,6
从小到大依次是:4,5
从小到大依次是:4,13
从小到大依次是:4,15
从小到大依次是:4,10
次数--------5
从小到大依次是:6,9
从小到大依次是:5,6
从小到大依次是:5,13
从小到大依次是:5,15
从小到大依次是:5,10
次数--------6
从小到大依次是:6,9
从小到大依次是:6,13
从小到大依次是:6,15
从小到大依次是:6,10
次数--------7
从小到大依次是:9,13
从小到大依次是:9,15
从小到大依次是:9,10
次数--------8
从小到大依次是:13,15
从小到大依次是:10,13
次数--------9
从小到大依次是:13,15
1
2
3
4
5
6
9
10
13
15

Java 选择排序