Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
算法的時(shí)間復(fù)雜度 PDF 下載
匿名網(wǎng)友發(fā)布于:2025-08-18 09:53:55
(侵權(quán)舉報(bào))
(假如點(diǎn)擊沒反應(yīng),多刷新兩次就OK!)

算法的時(shí)間復(fù)雜度 PDF 下載 圖1

 

 

資料內(nèi)容:

 

1、算法:解決問題的方法。 
 

我們可以把所有的算法想象為一本“菜譜”,特定的算法比如菜譜中的的一道菜的制作流
程,只要按照菜譜的要求制作,那么誰都可以做出一道好吃的菜。so,這個(gè)做菜的步驟就可
以理解為:“解決問題的步驟”
 
例如排序的算法,有插入排序、希爾排序、選擇排序、冒泡排序、堆排序、快速排序(六
大排序算法:插入排序、希爾排序、選擇排序、冒泡排序、堆排序、快速排序-CSDN博
客)
這么多算法,那怎么衡量他們的好壞呢?
比如衡量一臺(tái)電腦的好壞,可以CPU,價(jià)格,內(nèi)存等
算法可以用時(shí)間復(fù)雜度,和空間復(fù)雜度來衡量。
時(shí)間復(fù)雜度主要衡量一個(gè)算法的運(yùn)行快慢,而空間復(fù)雜度主要衡量一個(gè)算法運(yùn)行所需要的額
外空間。

 

2.什么是時(shí)間復(fù)雜度

 

public class Main {
 ? ?public static void main(String[] args) {
 ? ? ? ?//下面這句代碼會(huì)運(yùn)行多長時(shí)間
 ? ? ? ?int i = 0;
 ? ? ? ?
 ? ? ? ?//那下面這句呢?
 ? ? ? ?int a = 1,b = 2,c = 3...z = 26;
 ? ? ? ?
 ? ? ? ?
 ? ? ? ?for(int i = 0; i < n ;i++){
 ? ? ? ? ? ?System.out.println("Hello world!");//那這句呢?
 ? ? ? }
 ? ? ? ?
 ? ? ? ?//電腦運(yùn)行每一句代碼的時(shí)候都要要花費(fèi)時(shí)間,我們可以把每一條語句 
的執(zhí)行時(shí)間都看做是一樣的,記為一個(gè)時(shí)間單元。
 ? ? ? ?
 ? ? ? ?//所以上面的前兩句代碼各花費(fèi)了兩個(gè)時(shí)間單元,第三句花費(fèi)了n個(gè)時(shí) 間
單元
 ? ? ? ?
 ? ? ? ?//用T(n)表示程序運(yùn)行了多長時(shí)間,那么上面的代碼運(yùn)行時(shí)間為
 ? ? ? ?T(n) = 2 + n
 ? ? ? ?//其中的n被我們稱為問題的規(guī)模,其實(shí)就是處理問題的大小
 ? ? ? ?
 ? ? ? ?//一般只關(guān)心隨著問題規(guī)模n趨于無限大時(shí)對(duì)結(jié)果影響最大的項(xiàng)
 ? ? ? ?//所以上面的T(n)可以簡化為T(n) ~ n
 ? ? ? ? ? ?簡化后的式子就是這個(gè)算法的時(shí)間復(fù)雜度
 ? ? ? ? ? ?記為O(f(n))為時(shí)間復(fù)雜度
 ? ? ? ? ? ?
 ? ? ? ? ? ?//所以上面的算法的時(shí)間復(fù)雜度為O(n)
 ? }
}