概念:java
一般人們整理橋牌的方法是一張一張的來,將每一張牌插入到其餘已經有序的牌中的適當位置。在計算機的實現中,爲了要給插入的元素騰出空間,咱們須要將其他全部元素在插入以前都向右移動一位。與選擇排序同樣,當前索引左邊的全部元素都是有序的,但他們的最終位置還不肯定,爲了給更小的元素騰出空間,它們可能會被移動。可是當索引達到數組的右端時,數組排序就完成了。和選擇排序不一樣的是,插入排序所需的時間取決於輸入中元素的初始順序。數組
package com.test; import java.util.Arrays; public class InsertSort { public static void main(String[] args) { int test[] = {49,38,65,97,76,13,27,49}; sort(test); System.out.println(Arrays.toString(test)); } public static void sort(int[] a) { int j, sort; for (int i = 1; i < a.length; i ++) { // 從數組的第二個元素開始循環將數組中的元素插入 sort = a[i]; // 設置數組中的第二個元素爲第一次循環要插入的元素 j = i - 1; while (j >= 0 && sort < a[j]) { a[j + 1] = a[j]; // 若是要插入的元素小於第j個元素,就將第j個元素向後移動 j --; } a[j + 1] = sort; // 直到要插入的元素不小於第j個元素,將sort插入到數組中 } } }