Python选择排序、冒泡排序、合并排序代码实例
前两天刚装了python3.1.1,禁不住技痒写点code。
1.选择排序
>>>defSelSort(L): length=len(L) foriinrange(length-1): minIdx=i minVal=L[i] j=i+1 whilej<length: ifminVal>L[j]: minIdx=j minVal=L[j] j=j+1 L[i],L[minIdx]=L[minIdx],L[i] returnL
2.冒泡排序
>>>defbubSort(L): swapped=True whileswapped: swapped=False foriinrange(len(L)-1): ifL[i]>L[i+1]: L[i],L[i+1]=L[i+1],L[i] swapped=True returnL
3.合并排序
>>>defmerge(left,right): result=[] i,j=0,0 whilei<len(left)andj<len(right): ifleft[i]<=right[j]: result.append(left[i]) i=i+1 else: result.append(right[j]) j=j+1 result+=left[i:] result+=right[j:] returnresult
>>>defmergesort(L): iflen(L)<2: returnL else: middle=int(len(L)/2) left=mergesort(L[:middle]) right=mergesort(L[middle:]) returnmerge(left,right)