JAVA排序算法---直接插入排序

package 備份類;

/**
 * 插入排序算法
 */
public class 插入排序 {
    public static void main(String[] args) {

        int[] a = { 7, 6, 5, 4, 5, 7, 8, 4, 3 };
        outArr(a);
        insertSort(a);
        outArr(a);
    }

    /**
     * 備份當前的元素,只要前面的元素<當前的元素就向後移動一位
     */
    public static void insertSort(int[] a) {
        int i, j, temp;
        for (i = 0; i < a.length - 1; i++) {
            // a[i+1]就是當前的對象:比較哨
            temp = a[i + 1];
            j = i;
            // 向後移動一位
            while (j > -1 && temp <= a[j]) {
                a[j + 1] = a[j];
                j--;
            }
            // 把備份的這個放在移動之後空出的那一位上
            a[j + 1] = temp;
        }
    }

    /**
     * 打印當前的數組
     */
    public static void outArr(int[] a) {
        int n = a.length;
        for (int i = 0; i < n; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println();
    }

}
發佈了41 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章