python演算法——快速排序演算法

來源:互聯網
上載者:User

標籤:int   class   return   tar   複雜度   log   port   python演算法   out   

 

 

歸併排序
 1 def merge(li, low,mid, high): 2     i = low 3     j = mid+1 4     ltmp = [] 5     while i<=mid and j <=high: 6         if li[i]<li[j]: 7             ltmp.append(li[i]) 8             i += 1 9         else:10             ltmp.append(li[j])11             j += 112     while i<=mid:13         ltmp.append(li[i])14         i += 115     while j<=high:16         ltmp.append(li[j])17         j += 118     li[low:high+1]=ltmp19 # li = [1,5,7,8,9,2,5,7,10]20 # merge(li,0,len(li)//2,len(li)-1)21 # 本演算法時間複雜度為O(n*logn)22 def merge_sort(li,low,high):23     if low<high:24         mid = (low+high)//225         merge_sort(li,low,mid)26         merge_sort(li,mid+1,high)27         merge(li,low,mid,high)28 29 30 import time31 def timer(func):32     def inner(*args,**kwargs):33         start = time.time()34         ret = func(*args,**kwargs)35         end = time.time()36         print(end-start)37         return ret38     return inner39 @timer40 def outer(li,low,high):41     merge_sort(li,low,high)42 # import random43 # li = list(range(1000))44 # random.shuffle(li)45 # print(li)46 # outer(li,0,len(li)-1)   # 1000個資料費時0.004s47 # print(li)48 49 # li = list(range(10000))50 # random.shuffle(li)51 # print(li)52 # outer(li,0,len(li)-1)   # 10000個資料費時0.05s53 # print(li)

 

python演算法——快速排序演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.