Python算法中時間復雜度問題的示例分析-創(chuàng)新互聯

這篇文章主要介紹了Python算法中時間復雜度問題的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯是一家集成都做網站、成都網站制作、網站頁面設計、網站優(yōu)化SEO優(yōu)化為一體的專業(yè)網站制作公司,已為成都等多地近百家企業(yè)提供網站建設服務。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設計最適合用戶的網站頁面。 合作只是第一步,服務才是根本,我們始終堅持講誠信,負責任的原則,為您進行細心、貼心、認真的服務,與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。

在實現算法的時候,通常會從兩方面考慮算法的復雜度,即時間復雜度和空間復雜度。顧名思義,時間復雜度用于度量算法的計算工作量,空間復雜度用于度量算法占用的內存空間。

Python算法中時間復雜度問題的示例分析

本文將從時間復雜度的概念出發(fā),結合實際代碼示例分析算法的時間復雜度。

漸進時間復雜度

時間復雜度是算法運算所消耗的時間,因為不同大小的輸入數據,算法處理所要消耗的時間是不同的,因此評估一個算運行時間是比較困難的,所以通常關注的是時間頻度,即算法運行計算操作的次數,記為T(n),其中n稱為問題的規(guī)模。

同樣,因為n是一個變量,n發(fā)生變化時,時間頻度T(n) 也在發(fā)生變化,我們稱時間復雜度的極限情形稱為算法的漸近時間復雜度,記為O(n),不包含函數的低階和首項系數。

我們以如下 例子來解釋一下:

Python算法中時間復雜度問題的示例分析

如上例子中,我們根據代碼上執(zhí)行的平均時間假設,計算 run_time(n) 函數的時間復雜度,如下:

Python算法中時間復雜度問題的示例分析

上述時間復雜度計算公式T(n) ,是我們對函數 run_time(n) 進行的時間復雜度的估算。當n 值非常大的時候,T(n)函數中常數項 time0 以及n的系數 (time1+time2+time3+time4) 對n的影響也可以忽略不計了,因此這里函數run_time(n) 的時間復雜度我們可以表示為 O(n)。

因為我們計算的是極限狀態(tài)下(如,n非常大)的時間復雜度,因此其中存在以下兩種特性:

低階項相對于高階項產生的影響很小,可以忽略不計。 最高項系數對最高項的影響也很小,可以忽略不計。

根據上述兩種特性,時間復雜度的計算方法:

1.只取最高階項,去掉低階項。

2.去掉最高項的系數。

3.針對常數階,取時間復雜度為O(1)。

我們通過下面例子理解一下常見的時間復雜度,如下:

時間復雜度:常數階 O(1)

Python算法中時間復雜度問題的示例分析

時間復雜度:線性階 O(n)

Python算法中時間復雜度問題的示例分析

時間復雜度:線性階 O(n)

Python算法中時間復雜度問題的示例分析

時間復雜度:平方階 O(n^2)

Python算法中時間復雜度問題的示例分析

時間復雜度:平方階 O(n^2)

Python算法中時間復雜度問題的示例分析

時間復雜度:平方階 O(n^2)

Python算法中時間復雜度問題的示例分析

時間復雜度:立方階 O(n^3)

Python算法中時間復雜度問題的示例分析

時間復雜度:對數階 O(logn)

Python算法中時間復雜度問題的示例分析

隨著問題規(guī)模n的不斷增大,上述時間復雜度不斷增大,算法的執(zhí)行效率越低,時間復雜度排序如下:

Python算法中時間復雜度問題的示例分析

練習一下

如下count_sort 函數實現了計數排序,列表中的數范圍都在0到100之間,列表長度大約為100萬。

Python算法中時間復雜度問題的示例分析

如上count_sort 函數的 空間復雜度為 O(n),公式如下:

Python算法中時間復雜度問題的示例分析

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python算法中時間復雜度問題的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯,關注創(chuàng)新互聯行業(yè)資訊頻道,更多相關知識等著你來學習!

網頁題目:Python算法中時間復雜度問題的示例分析-創(chuàng)新互聯
文章URL:http://bm7419.com/article20/dpoico.html

成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站建設商城網站、App設計、建站公司、手機網站建設移動網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

h5響應式網站建設