排序演算法(四)——插入排序
阿新 • • 發佈:2019-01-08
插入排序(英語:Insertion Sort)是一種簡單直觀的排序演算法。通過對未排序的資料執行逐個插入至合適的位置而完成排序工作。
插入排序演算法的運作如下:
1.首先對陣列的前兩個資料進行從小到大的排序;
2.接著將第3個數據與排好序的兩個資料進行比較,將第三個資料插入合適的位置;
3.然後,將第4個數據插入已排好序的前3個數據中。
4.不斷重複上述過程,直到把最後一個數據插入合適的位置。
package cn.kimtian.sort; import java.util.Arrays; /** * 這是一個插入排序演算法 * * @author kimtian */ public class InsertionSort { public static void main(String[] args) { int[] arr = {1, 3, 6, 7, 8, 0, 7, 4, 2, 1}; insertSort(arr); System.out.println(Arrays.toString(arr)); } /** * 這是一個插入排序演算法 * * @param arr */ public static void insertSort(int[] arr) { //遍歷所有的數字 for (int i = 1; i < arr.length; i++) { //如果當前數字比前一個數字小 if (arr[i - 1] > arr[i]) { int mid = arr[i]; for (int j = i - 1; j >= 0 && arr[j] > mid; j--) { int temp = arr[j]; //交換位置 arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } }