码迷,mamicode.com
首页 > 编程语言 > 详细

Java 选择排序

时间:2017-05-13 22:07:40      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:动作   比较   bsp   generate   实现   private   class   交换   log   

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

    交换两个数

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 选择排序

标签:动作   比较   bsp   generate   实现   private   class   交换   log   

原文地址:http://www.cnblogs.com/shootercheng/p/6850285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!