'''
插入排序
'''
def 插入排序(unsort_list):
'''判断分离版(易理解)
判断每个元素与它索引之前的元素(有序)一一对比, 得到这个元素在这个区域有序序列中的位置.
循环每个元素, 循环这个元素索引之前的元素, 在循环内先判断是否是与第一个元素进行对比, 如果是则少一个判断条件;
如果是与第一个元素进行对比, 则判断循环元素是否小于第一个元素, 如果是, 则插入到首位;
如果不是与第一个元素进行对比, 则需要判断循环元素的值在两个元素的值之间或相等;
'''
for i in range(1, len(unsort_list)):
for j in range(0, i):
if j - 1 >= 0:
if unsort_list[i] <= unsort_list[j] and unsort_list[i] >= unsort_list[j - 1]:
temp_value = unsort_list[i]
unsort_list.pop(i)
unsort_list.insert(j, temp_value)
else:
if unsort_list[i] <= unsort_list[j]:
temp_value = unsort_list[i]
unsort_list.pop(i)
unsort_list.insert(j, temp_value)
return unsort_list
if __name__ == "__main__":
print(插入排序([6, 3, 8, 1, 4, 7, 9]))