冒泡排序

'''
冒泡排序
'''


def 冒泡排序1(unsort_list):
    for i in range(0, len(unsort_list)):
        for j in range(0, len(unsort_list) - i - 1):
            if unsort_list[j+1] > unsort_list[j]:
                unsort_list[j+1], unsort_list[j] = unsort_list[j], unsort_list[j+1]
    return unsort_list


def 冒泡排序2(unsort_list):
    '''在冒泡排序基础版的前提下, 增加一个判断,
    如果在一轮对比中没有交换的元素, 那说明已经是有序的了, 直接结束排序
    '''
    for i in range(0, len(unsort_list)):
        sorted = True
        for j in range(0, len(unsort_list) - i - 1):
            if unsort_list[j+1] > unsort_list[j]:
                unsort_list[j+1], unsort_list[j] = unsort_list[j], unsort_list[j+1]
                sorted = False
        if sorted is True:
            break
    return unsort_list


if __name__ == "__main__":
    print(冒泡排序1([1, 8, 4, 7, 2, 5, 4]))