插入排序

'''
插入排序
'''


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]))