Python排序:快速,冒泡,归并
2011年5月13日
没有评论
之前介绍过qsort,但后来发现稍微有点不妥,终止条件设置成if not L: return L ,有点多余,实际上L长度为1时就可return了,所以改了改终止条件.然后写了下冒泡排序和归并排序,测试了下,运行结果应该没问题.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def qsort(L): if len(L)<=1: return L return qsort([x for x in L[1:] if x<L[0]])+L[0:1]+qsort([x for x in L[1:] if x>=L[0]]) def bubblesort(L): for i in xrange(0,len(L)): for j in xrange(len(L)-1,i,-1): if L[j]<L[j-1]: L[j-1],L[j]=L[j],L[j-1] return L def mergesort(L): if len(L)<=1: return L left=mergesort(L[0:len(L)/2]) right=mergesort(L[len(L)/2:len(L)]) result=[] while len(left)>0 or len(right)>0: if len(right)<=0 or (len(left)>0 and left[0]<=right[0]): result.append(left.pop(0)) else: result.append(right.pop(0)) return result |
近期评论