欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python算法的時(shí)間復(fù)雜度和空間復(fù)雜度(實(shí)例解析)

 更新時(shí)間:2019年11月19日 09:32:01   作者:Sch01aR#  
算法復(fù)雜度分為時(shí)間復(fù)雜度和空間復(fù)雜度,簡(jiǎn)單而講時(shí)間復(fù)雜度指的是語(yǔ)句執(zhí)行次數(shù),空間復(fù)雜度指的是算法所占的存儲(chǔ)空間,本文通過(guò)代碼給大家介紹Python算法的時(shí)間復(fù)雜度和空間復(fù)雜度問(wèn)題,感興趣的朋友一起看看吧

算法復(fù)雜度分為時(shí)間復(fù)雜度和空間復(fù)雜度。

其作用:

時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;
而空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
(算法的復(fù)雜性體現(xiàn)在運(yùn)行該算法時(shí)的計(jì)算機(jī)所需資源的多少上,計(jì)算機(jī)資源最重要的是時(shí)間和空間(即寄存器)資源,因此復(fù)雜度分為時(shí)間和空間復(fù)雜度)。

簡(jiǎn)單來(lái)說(shuō),時(shí)間復(fù)雜度指的是語(yǔ)句執(zhí)行次數(shù),空間復(fù)雜度指的是算法所占的存儲(chǔ)空間

計(jì)算時(shí)間復(fù)雜度的方法:

  • 用常數(shù)1代替運(yùn)行時(shí)間中的所有加法常數(shù)
  • 修改后的運(yùn)行次數(shù)函數(shù)中,只保留最高階項(xiàng)
  • 去除最高階項(xiàng)的系數(shù)

時(shí)間復(fù)雜度

算法的時(shí)間復(fù)雜度是一個(gè)函數(shù),它定量描述了該算法的運(yùn)行時(shí)間,時(shí)間復(fù)雜度常用“O”表述,使用這種方式時(shí),時(shí)間復(fù)雜度可被稱(chēng)為是漸近的,它考察當(dāng)輸入值大小趨近無(wú)窮時(shí)的情況

時(shí)間復(fù)雜度是用來(lái)估計(jì)算法運(yùn)行時(shí)間的一個(gè)式子(單位),一般來(lái)說(shuō),時(shí)間復(fù)雜度高的算法比復(fù)雜度低的算法慢

print('Hello world') # O(1)
# O(1)
print('Hello World')
print('Hello Python')
print('Hello Algorithm')
for i in range(n): # O(n)
 print('Hello world')
for i in range(n): # O(n^2)
 for j in range(n):
 print('Hello world')
for i in range(n): # O(n^2)
 print('Hello World')
 for j in range(n):
 print('Hello World')
for i in range(n): # O(n^2)
 for j in range(i):
 print('Hello World')
for i in range(n):
 for j in range(n):
 for k in range(n):
  print('Hello World') # O(n^3)

 幾次循環(huán)就是n的幾次方的時(shí)間復(fù)雜度

n = 64
while n > 1:
 print(n)
 n = n // 2

 26 = 64,log264 = 6,所以循環(huán)減半的時(shí)間復(fù)雜度為O(log2n),即O(logn)

如果是循環(huán)減半的過(guò)程,時(shí)間復(fù)雜度為O(logn)或O(log2n)

常見(jiàn)的時(shí)間復(fù)雜度高低排序:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n2logn)<O(n3)

空間復(fù)雜度

空間復(fù)雜度:用來(lái)評(píng)估算法內(nèi)存占用大小的一個(gè)式子

a = 'Python' # 空間復(fù)雜度為1
# 空間復(fù)雜度為1
a = 'Python'
b = 'PHP'
c = 'Java'
num = [1, 2, 3, 4, 5] # 空間復(fù)雜度為5
num = [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] # 空間復(fù)雜度為5*4
num = [[[1, 2], [1, 2]], [[1, 2], [1, 2]] , [[1, 2], [1, 2]]] # 空間復(fù)雜度為3*2*2

 定義一個(gè)或多個(gè)變量,空間復(fù)雜度都是為1,列表的空間復(fù)雜度為列表的長(zhǎng)度

總結(jié)

以上所述是小編給大家介紹的Python算法的時(shí)間復(fù)雜度和空間復(fù)雜度,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 淺析PyTorch中nn.Module的使用

    淺析PyTorch中nn.Module的使用

    這篇文章主要介紹了淺析PyTorch中nn.Module的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 使用django-crontab實(shí)現(xiàn)定時(shí)任務(wù)的示例

    使用django-crontab實(shí)現(xiàn)定時(shí)任務(wù)的示例

    這篇文章主要介紹了使用django-crontab實(shí)現(xiàn)定時(shí)任務(wù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 使用Python實(shí)現(xiàn)給企業(yè)微信發(fā)送消息功能

    使用Python實(shí)現(xiàn)給企業(yè)微信發(fā)送消息功能

    本文將介紹如何使用python3給企業(yè)微信發(fā)送消息,文中有詳細(xì)的圖文解說(shuō)及代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴很有幫助,需要的朋友可以參考下
    2021-12-12
  • Python中的np.setdiff1d()函數(shù)詳解

    Python中的np.setdiff1d()函數(shù)詳解

    Python中的np.setdiff1d()函數(shù)可用于找出兩個(gè)序列集合中元素的差異,下面通過(guò)示例代碼給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Python實(shí)現(xiàn)執(zhí)行Shell命令并獲取輸出

    Python實(shí)現(xiàn)執(zhí)行Shell命令并獲取輸出

    這篇文章主要介紹了如何借助?os.system()?從?Python?腳本執(zhí)行?cmd?命令,以及如何借助?Python?中的?subprocess?模塊以更簡(jiǎn)單的方式從腳本執(zhí)行?cmd?命令,感興趣的小伙伴可以了解下
    2023-10-10
  • python使用正則表達(dá)式替換匹配成功的組

    python使用正則表達(dá)式替換匹配成功的組

    正則表達(dá)式,又稱(chēng)正規(guī)表示式、正規(guī)表示法、正規(guī)表達(dá)式、規(guī)則表達(dá)式、常規(guī)表示法。這篇文章主要介紹了python里使用正則表達(dá)式來(lái)替換匹配成功的組,需要的朋友可以參考下
    2017-11-11
  • python自動(dòng)化測(cè)試之破解圖文驗(yàn)證碼

    python自動(dòng)化測(cè)試之破解圖文驗(yàn)證碼

    這篇文章介紹了python自動(dòng)化測(cè)試之破解圖文驗(yàn)證碼的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • python__new__內(nèi)置靜態(tài)方法使用解析

    python__new__內(nèi)置靜態(tài)方法使用解析

    這篇文章主要介紹了python__new__內(nèi)置靜態(tài)方法使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python如何實(shí)現(xiàn)拆分?jǐn)?shù)據(jù)集

    Python如何實(shí)現(xiàn)拆分?jǐn)?shù)據(jù)集

    這篇文章主要介紹了Python如何實(shí)現(xiàn)拆分?jǐn)?shù)據(jù)集問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python解決C盤(pán)卡頓問(wèn)題及操作腳本示例

    Python解決C盤(pán)卡頓問(wèn)題及操作腳本示例

    這篇文章主要為大家介紹了Python解決C盤(pán)卡頓問(wèn)題腳本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評(píng)論