JAVA插入排序

插入排序(Insertion sort)是一種簡單直觀且穩定的排序算法。如果有一個已經有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入後此數據序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,算法適用於少量數據的排序,時間複雜度爲O(n²)。是穩定的排序方法。插入排序的基本思想是:每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完爲止。

package com.sort;

import java.util.Arrays;

/**
 * 面試錦集:插入排序
 *
 * @author 小輝GE/小輝哥
 * <p>
 * 2019年8月17日 下午21:30:00
 */
public class InsertSort {

    public static void main(String[] args) {
        // 定義數組
        int[] arry = new int[]{3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
        System.out.println("arryyy數組排序前爲:" + Arrays.toString(arry));

        // 插入排序核心邏輯
        if (!(arry == null || arry.length < 2)) {
            for (int i = 1; i < arry.length; i++) {
                for (int j = i; j > 0; j--) {
                    if (arry[j] < arry[j - 1]) {
                        int temp = arry[j];
                        arry[j] = arry[j - 1];
                        arry[j - 1] = temp;
                    } else {
                        break;
                    }
                }
            }
        }
        System.out.println("arryyy數組排序後爲:" + Arrays.toString(arry));
    }
}

具體插入排序步驟詳解,大家可以參考下圖動態展示效果:

測試輸出結果如下:

以上代碼僅供參考,如有不當之處,歡迎指出!!!

更多幹貨,歡迎大家關注和聯繫我。期待和大家一起更好的交流、探討技術!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章