Java 冒泡排序

     排序執行的動做有比較、交換、移動,冒泡排序在排序裏面最簡單啦,冒泡排序每次選出最大的數,放在最右邊,使用Java中的數組實現冒泡排序。數組

    交換兩個數this

    

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);
    }
}

     排序spa

    

public class BubbleSort {

    /**
     * @author chengdu
     * @param args
     */
    private SwapTwo swaptwo;
    
    public void setSwaptwo(SwapTwo swaptwo){
        this.swaptwo = swaptwo;
    }
    
    public SwapTwo getSwaptwo() {
        return swaptwo;
    }
    
    public void bubbleSortMethod(int[] array){   //傳入待排序數組
        int pos;    //第幾趟比較
        int lenarray = array.length;
        swaptwo.setBubble(array);
        for(pos=1; pos < lenarray; pos++){
             System.out.println("次數-------:"+pos);
             for(int i = 0; i < lenarray - pos; i++){   //一次排序的過程,將最大的數放到最後面
                     swaptwo.swapTwoNumber(i, i+1);
             }
        }
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SwapTwo swaptwo = new SwapTwo();
        BubbleSort bubblesort = new BubbleSort();
        int[] arrayone = {1, 9, 8, 3, 7, 6, 5, 2, 4, 10, 11, 35, 24};  //待排序數組
        //swaptwo.setBubble(arrayone);    //設置一下該類的屬性
        bubblesort.setSwaptwo(swaptwo);
        bubblesort.bubbleSortMethod(arrayone);
        for(Integer i : arrayone){
            System.out.println(i);
        }
        //swaptwo.swapTwoNumber(1, 2);
    }

}

運行code

次數-------:1
從小到大依次是:1,9
從小到大依次是:8,9
從小到大依次是:3,9
從小到大依次是:7,9
從小到大依次是:6,9
從小到大依次是:5,9
從小到大依次是:2,9
從小到大依次是:4,9
從小到大依次是:9,10
從小到大依次是:10,11
從小到大依次是:11,35
從小到大依次是:24,35
次數-------:2
從小到大依次是:1,8
從小到大依次是:3,8
從小到大依次是:7,8
從小到大依次是:6,8
從小到大依次是:5,8
從小到大依次是:2,8
從小到大依次是:4,8
從小到大依次是:8,9
從小到大依次是:9,10
從小到大依次是:10,11
從小到大依次是:11,24
次數-------:3
從小到大依次是:1,3
從小到大依次是:3,7
從小到大依次是:6,7
從小到大依次是:5,7
從小到大依次是:2,7
從小到大依次是:4,7
從小到大依次是:7,8
從小到大依次是:8,9
從小到大依次是:9,10
從小到大依次是:10,11
次數-------:4
從小到大依次是:1,3
從小到大依次是:3,6
從小到大依次是:5,6
從小到大依次是:2,6
從小到大依次是:4,6
從小到大依次是:6,7
從小到大依次是:7,8
從小到大依次是:8,9
從小到大依次是:9,10
次數-------:5
從小到大依次是:1,3
從小到大依次是:3,5
從小到大依次是:2,5
從小到大依次是:4,5
從小到大依次是:5,6
從小到大依次是:6,7
從小到大依次是:7,8
從小到大依次是:8,9
次數-------:6
從小到大依次是:1,3
從小到大依次是:2,3
從小到大依次是:3,4
從小到大依次是:4,5
從小到大依次是:5,6
從小到大依次是:6,7
從小到大依次是:7,8
次數-------:7
從小到大依次是:1,2
從小到大依次是:2,3
從小到大依次是:3,4
從小到大依次是:4,5
從小到大依次是:5,6
從小到大依次是:6,7
次數-------:8
從小到大依次是:1,2
從小到大依次是:2,3
從小到大依次是:3,4
從小到大依次是:4,5
從小到大依次是:5,6
次數-------:9
從小到大依次是:1,2
從小到大依次是:2,3
從小到大依次是:3,4
從小到大依次是:4,5
次數-------:10
從小到大依次是:1,2
從小到大依次是:2,3
從小到大依次是:3,4
次數-------:11
從小到大依次是:1,2
從小到大依次是:2,3
次數-------:12
從小到大依次是:1,2
1
2
3
4
5
6
7
8
9
10
11
24
35blog

相關文章
相關標籤/搜索