1. 问题
2. 算法
2.1 伪代码
2.2 算法思想
2.3 手工演示
2.4 Python实现
《算法导论》一书数组默认从111开始,这种方式适合算法分析,从000开始适合程序实现,为了能和伪代码一致便于对比,后边所有的Python实现中数组均从111开始。
# -*- coding: utf-8 -*-
import sysdef insertion_sort(A, n):for j in range(2, n+1):key = A[j]i = j - 1while i > 0 and A[i] > key:A[i+1] = A[i]i = i - 1A[i+1] = keyif __name__ == '__main__':input_str = sys.stdin.readline().split()A = list(map(int, input_str))A.insert(0, 'x') # 为了使数组从1开始n = len(A) - 1print('Before sort:')print(A[1:])print('After sort:')insertion_sort(A, n)print(A[1:])