java-幾種排序

package base;

/**
 * Created by XHGA on 2018/5/9.
 */
public class Sort {
    /**
    冒泡排序:將最大值放在後面(從後向前排序)
    插入排序:將數值插入到前面已經排好的數組(從前向後排序,仍有改動)
    選擇排序:將最小值放在該位置(從前向後排序)
    */
    public static void main(String[] args) {
        int[] in = {50,32,64,89,15,0,36,46};
        chooseArray(in);
    }
    /**
     * 冒泡排序
     * 相鄰的比較,最大值放後面
     * @param in
     */
    public static void efferArray(int[] in ) {
        int tem = 0;
        for (int i = 0; i < in.length; i++) {
            for (int j = 0; j < in.length - 1 - i; j++) {
                if (in[j] > in[j+1]) {
                    tem = in[j+1];
                    in[j+1] = in[j];
                    in[j] = tem;
                }
            }
        }
        for (int i = 0; i < in .length; i++) {
            System.out.print( in [i]);
            if (i < in .length - 1) {
                System.out.print(",");
            }
        }
    }
    /**
     * 插入排序
     * 每次循環將指定位置的數值,插入到前面已經排號順序的數組當中
     * @param in
     */
    public static void insertArray(int[] in ) {
        int tem;
        for (int i = 0; i < in.length; i++) {
            int j = i - 1;
            tem = in[i];
            while (j>=0 && in[j] > tem) {
                in[j+1] = in[j];
                j--;
            }
            in[j+1] = tem;
        }
        for (int i = 0; i < in .length; i++) {
            System.out.print( in [i]);
            if (i < in .length - 1) {
                System.out.print(",");
            }
        }
    }

    /**
     * 選擇排序
     * 每次循環將最小值放在此位置
     * @param in
     */
    public static void chooseArray(int[] in ) {
        int tem;
        for (int i = 0; i < in.length-1; i++) {
            for (int j = i + 1; j < in.length ; j++) {
                tem = in[i];
                if (tem > in[j]) {
                    in[i] = in[j];
                    in[j] = tem;
                }
            }
        }
        for (int i = 0; i < in .length; i++) {
            System.out.print( in [i]);
            if (i < in .length - 1) {
                System.out.print(",");
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章