python歸併排序

def merge_sort(list):
    left_p = 0
    right_p = 0
    result = []
    len_list = len(list)
    if len_list <= 1:
        return list
    mid = (len_list//2)
    left_list = merge_sort(list[:mid])
    right_list = merge_sort(list[mid:])
    while left_p < len(left_list) and right_p < len(right_list):
        if left_list[left_p] < right_list[right_p]:
            result.append(left_list[left_p])
            left_p += 1
        else:
            result.append(right_list[right_p])
            right_p += 1
    result += left_list[left_p:]
    result += right_list[right_p:]
    return result
if __name__ == '__main__':
    list = [2, 3, 1, 6, 9, 4, 5]
    re = merge_sort(list)
    print(re)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章