def mergesort(seq): mid=len(seq)//2 lft,rgt=seq[:mid],seq[mid:] if len(lft)>1:lft=mergesort(lft) if len(rgt)>1:rgt=mergesort(rgt) res=[] while lft and rgt: if lft[-1]>=rgt[-1]: res.append(lft.pop()) else: res.append(rgt.pop()) res.reverse() return (lft or rgt)+res t=[2,45,6,3,1,4,6,8,2] print mergesort(t)
我不懂 lft[-1]>=rgt[-1]是什么意思,之前没有见过这边lft[-1]表达啊,大神求解 啊
lft[-1]返回lft数组最后一个的值,比较lft和rgt的最后一个值,然后把比较大的那个pop到res里面去