直接插入排序,
将一个记录插入到已排好序的有序列表中
class StraightInsertSort:
def insert_sort(self, a):
# 从数组的第二个元素开始循环将数组中的元素插入(默认第一个元素为有序序列)
for i in range(1, len(a)):
temp = a[i]
j = i - 1
# 向左进行排序查找,记录后移
while j >= 0 and temp < a[j]:
a[j + 1] = a[j]
j -= 1
a[j + 1] = temp
return a
if __name__ == '__main__':
a = [10, 5, 4, 3, 2, 1, 8]
b = StraightInsertSort().insert_sort(a)
print(b)
结果
[1, 2, 3, 4, 5, 8, 10]