前兩天剛裝了python 3.1.1, 禁不住技癢寫點code。
1.選擇排序
>>> def SelSort(L):
??? length=len(L)
??? for i in range(length-1):
??????? minIdx=i
??????? minVal=L[i]
??????? j=i+1
??????? while j
??????????? if minVal>L[j]:
??????????????? minIdx=j
??????????????? minVal=L[j]
??????????? j=j+1
??????? L[i],L[minIdx]=L[minIdx],L[i]
??? return L
2.冒泡排序
>>> def bubSort(L):
??? swapped=True
??? while swapped:
??????? swapped=False
??????? for i in range(len(L)-1):
??????????? if L[i]>L[i+1]:
??????????????? L[i],L[i+1]=L[i+1],L[i]
??????????????? swapped=True
??? return L
3.合并排序
>>> def merge(left,right):
??? result=[]
??? i,j=0,0
??? while i
??????? if left[i]<=right[j]:
??????????? result.append(left[i])
??????????? i=i+1
??????? else:
??????????? result.append(right[j])
??????????? j=j+1
??? result+=left[i:]
??? result+=right[j:]
??? return result
>>> def mergesort(L):
??? if len(L) < 2:
??????? return L
??? else:
??????? middle = int(len(L)/2)
??????? left = mergesort(L[:middle])
??????? right = mergesort(L[middle:])
??????? return merge(left, right)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
