歸併排序(別名:分治排序)
阿新 • • 發佈:2018-12-29
def merge_sort(alist): '''歸併排序''' n=len(alist) if n<=1: return alist mid = n//2 left_li = merge_sort(alist[:mid]) right_li = merge_sort(alist[mid:]) left_pointer,right_pointer = 0,0 result=[] #new一個新列表,對新列表進行追加 while left_pointer<len(left_li) and right_pointer<len(right_li): if left_li[left_pointer]<right_li[right_pointer]: result.append(left_li[left_pointer]) left_pointer+=1 else: result.append(right_li[right_pointer]) right_pointer+=1 result += left_li[left_pointer:] result += right_li[right_pointer:] return result