這裡虛擬碼的箭頭 <- 表示程式裡面等於 = 用來賦予變數數值 這裡的 do 沒有任何特殊涵義, 單純表示執行而已 虛擬碼的起始為 1, 所以 for j <- 2 這邊實際上對應到程式語言是 1
1 2 3 4 5 6 7 8 9
insertion-sort(A) for j <- 2 to length[A] do key <- A[j] *Insert A[j] into the sorted sequence A[1..j-1] i <- j - 1 while i > 0 and A[i] > key do A[i+1] <- A[i] i <- i - 1 A[i+1] <- key
def insertion_sort(A): # for j <- 2 to length[A] for j in range(1, len(A)): # do key <- A[j] key = A[j] # *Insert A[j] into the sorted sequence A[1..j-1] # 這行是註解,說明接下來要做的事 # i <- j - 1 i = j - 1 # while i > 0 and A[i] > key # (在 Python 中,索引從 0 開始,所以條件改為 i >= 0) while i >= 0 and A[i] > key: # do A[i+1] <- A[i] A[i+1] = A[i] # i <- i - 1 i = i - 1 # A[i+1] <- key A[i+1] = key