Python演算法教程第三章知識點:求和式、遞迴式、侏儒排序法和並歸排序法

來源:互聯網
上載者:User

標籤:omega   mergesort   lse   之間   公眾號   mes   python   and   turn   

本文目錄:一、求和式;二、遞迴式;三、侏儒排序法和並歸排序法
公眾號:geekkr
</br>
</br>
</br>

一、求和式

# 假設有一函數為f(),則在Python中經常使用的求和方法如下。sum(f(i) for i in range(m, n+1)) + sum(g(i) for i in range(m, n+1))sum(f(i)+g(i) for i in range(m, n+1))

</br>
二、遞迴式

# 舉個栗子def S(seq, i=0):    if i == len(seq): return 0    return S(seq, i+1) + seq[i]

</br>
三、侏儒排序法和並歸排序法

# 侏儒排序法def gnomesort(seq):    i = 0    while i < len(seq):        if i == 0 or seq[i-1] <= seq[i]            i += 1        else:            seq[i], seq[i-1] = seq[i-1], seq[i]            i -=1# 並歸排序法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

侏儒排序法的已耗用時間介於\Omega (n)\Omega (n^{2})之間;而並歸排序法的已耗用時間為\theta (nlgn)。

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.