排序-插入排序

插入排序比較適用于 有序的輸入

插入排序是和整理紙牌的時候是一樣的
當摸一張牌的時候,把當前這張牌插入到指定位置

可以拿這張牌的值和前面的比較,如果比前面的牌小則和前面的牌交換

此時j-1 ,當前牌索引也因交換-1
當出現(xiàn)當前牌大于前面的牌(因為前面的牌從小到大排序,出現(xiàn)大于則已經到正確的位置了)則跳出

@Test
    public void test(){
        int[] a = {4, 2, 5, 3, 1, 0};
        sort(a);
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + ",");
        }
    }
    public void sort(int[] a){
        for (int i = 1; i < a.length; i++) {
            for (int j = i; j > 0 && less(a[j], a[j - 1]); j--) {
                exch(a, j, j-1);
            }
        }

    }
    
    private boolean less(int i, int j) {
        return i > j ? false : true;
    }

    private void exch(int[] a, int m, int n) {
        int tmp = a[m];
        a[m] = a[n];
        a[n] = tmp;
    }   
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容