輸入:n個數的一個序列
輸出:輸入序列的一個排列,滿足 a1 ≤ a2 ≤ ... ≤ an。
對于插入排序,我們將其偽代碼命名為Insertion-sort,其中的參數是一個數組A[1..n],包含長度為n的要排序的一個序列。(在代碼中,A中元素的數目n用A.length來表示。)該算法原址排序輸入的數:算法在數組A中重排這些數,在任何時候,最多只有其中的常數個數字存儲在數組外面。在過程Insertion-sort結束時,輸入數組A包含排序好的輸出序列。
Insertion-sort(A)
for (j = 2; j <= A.length; j++)
key = A[j]
// Insert A[j] into the sorted sequence A[1..j-1]
i = j - 1
while (i > 0 && A[i] > key)
A[i+1] = A[i]
i = i - 1
A[i+1] = key