1. 程式人生 > >Java 選擇排序

Java 選擇排序

onu ets clas class eth ner generate ger nbsp

選擇排序,每次將最小的數選出來,反復執行兩個動作,比較、交換,放在最左邊,依次類推,用數組實現選擇排序

交換兩個數

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 選擇排序