算法描述(伪代码)
代码
数据模型
class sequence:
def __init__(self, list):
self.data = [None] + list
self.length = len(self.data)-1
def isSorted(self):
for i in range(1, self.length-1):
if self.data[i] > self.data[i+1]:
return False
return True
def printData(self):
A = self.data[1:]
print(A)
def length(s):
assert (isinstance(s, sequence))
return s.length
插入排序
from datamodel import sequence
def insertSort(s):
assert(isinstance(s, sequence))
A = s.data
for j in range(2, s.length + 1):
key = A[j]
# Insert s[j] to the sorted sequence s[1..j-1]
i = j-1
while i>0 and A[i]>key:
A[i+1] = A[i]
i -= 1
A[i+1] = key
assert(s.isSorted())
print("succeed")
if __name__ =='__main__':
s1 = sequence([5,2,4,6,1,3])
insertSort(s1)
s1.printData()
运行结果
succeed
[1, 2, 3, 4, 5, 6]
参考
《算法导论》