来源于:
中国大学MOOC----大学计算机--Python算法实践---李金双、张昱、李凤云
#归并排序算法: def merge(left,right): merged=[] #定义一个空列表 i,j=0,0 left_len,right_len=len(left), len(right) while i<left_len and j<right_len: if left[i]<=right[j]: #升序排列 merged.append(left[i]) #将left[i]追加到merge中 i+=1 else: merged.append(right[j]) j+=1 merged.extend(left[i:]) merged.extend(right[j:]) print("跟踪调试:",left,right,merged) return merged def mergeSort(L): #归并排序 if len(L)<=1: return L mid=len(L)//2 #取列表中点位置 left=mergeSort(L[:mid]) right=mergeSort(L[mid:]) return merge(left,right) L=[6, 14, 16, 23, 33, 42, 45, 67, 98,63,15] b=mergeSort(L) print(b)