1樓:網友
演算法的時間複雜度:個人理解就是演算法所執行的**條數 * 執行一條**的時間。書上有個公式什麼的(本人菜鳥,上課不專心忘了)
2樓:御坂
就是處理乙個演算法的時間用度,比如乙個程式的初始化的用時! 除了這個還有演算法的空間複雜度!!
什麼是演算法的時間複雜度
3樓:頻採珊逢津
如果乙個問題的規模是n,解決這一問題所需演算法所需要的時間是n的乙個函式t(n),則t(n)稱為這一演算法的時間複雜度。
什麼是演算法的時間複雜度?
4樓:
是說明乙個程式根據其資料n的規模大小 所使用的大致時間和空間說白了 就是表示 如果隨著n的增長 時間或空間會以什麼樣的方式進行增長。
例for(int i = 0; i < n;++i);這個迴圈執行n次 所以時間複雜度是o(n)for(int i = 0; i< n;++i)這巢狀的兩個迴圈 而且都執行n次。
那麼它的時間複雜度就是 o(n^2)
時間複雜度只能大概的表示所用的時間。
而一些基本步驟 所執行的時間不同 我們無法計算 所以省略如for(int i = 0;i < n;++i)a = b;
和for(int i = 0;i < n;++i);這個執行的時間當然是第二個快 但是他們的時間複雜度都是 o(n)判斷時間複雜度看迴圈。
5樓:網友
時間複雜度表面的意思就是**花費的時間,但是一般使用這個概念的時候,更注重的是隨著資料量增長,**執行時間的增長情況。一般認為乙個基本的運算為一次執行算,例如加減乘除判斷等等。
例1和例2時間複雜度都可以簡單認為是o(n),一般用時間複雜度的時候要取乙個下限即可,不用那麼精確,可能你認為例1是o(2n)而例2是o(n),但實際上這兩者對於時間複雜度的作用來說沒區別,前面已經說了,時間複雜度關注的是資料量的增長導致的時間增長情況,o(2n)和o(n)在資料量增加一倍的時候,時間開銷都是增加一倍(線性增長)。
又例如兩重迴圈的時間複雜度是o(n的平方),n擴大一倍,時間複雜度就擴大4倍。所以時間複雜度主要是研究增長的問題,一般效率較好的演算法要控制在o(n)或者o(log2n)
6樓:硬幣小耗
電腦科學中,演算法的時間複雜度是乙個函式,它定量描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。
使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。
演算法複雜度分為時間複雜度和空間複雜度。其作用: 時間複雜度是指執行演算法所需要的計算工作量;而空間複雜度是指執行這個演算法所需要的記憶體空間。
演算法的複雜性體現在執行該演算法時的計算機所需資源的多少上,計算機資源最重要的是時間和空間(即暫存器)資源,因此複雜度分為時間和空間複雜度)。
資料結構中演算法的時間複雜度是什麼?
7樓:曹妃賁溪
程式所用時間關於資料規模的函式。
比如:給n個數排序需要n^2的時間。
時間複雜度專就是o(n^2)
通常屬有。o(2)
常數與輸入資料規模無關。
o(n)成正比o(log2n)
平方與資料規模成正比。
o(n^2)
與資料規模的平方成正比。
o(n^3)
三次方……o(n!)階乘。
演算法的時間複雜度是指什麼
8樓:
就是對演算法執行時所花時間的度量。一般為問題規模的函式。
9樓:網友
演算法複雜度不是簡單的時間的度量。
是用來評價演算法優劣程度的依據。
比如,乙個程式要掃瞄100 * n * n + 10000 * n + 99999遍,那麼時間複雜度是o(n^2)
也就是說,時間複雜度只取次數最高的項,並且忽略係數。
所以,時間複雜度是用來描述隨著 n 的增大,演算法耗時「增大」的!不是用來描述執行所花時間的(這個我們初中老師給我們強調了半天)
還有一點,o(9999999999)(實際應寫為o(1),這裡只是表達意思)和o(n)的演算法那個好?
答案是o(9999999999),因為他的耗時不隨n的增大而變化,所以他更優。
一般來說,演算法的好壞是這樣的 (>表示好於) o(1) >o(logn) >o(n) >o(n logn) >o(n^2) >o(n^3) >o(2^n) >o(n!)
10樓:剛剛1人
執行演算法所需要的計算工作量,可以說是計算的次數。
11樓:網友
演算法執行過程中所需要的基本運算次數。
什麼是演算法的時間複雜度?
12樓:
是說明乙個程bai序根據其資料dun的規模大小 所使用的大致時zhi間dao和空間。
說白了 就是表示 如果隨著版n的增長。
權時間或空間會以什麼樣的方式進行增長。
例for(int i = 0; i < n;++i);這個迴圈執行n次 所以時間複雜度是o(n)for(int i = 0; i< n;++i)這巢狀的兩個迴圈 而且都執行n次。
那麼它的時間複雜度就是 o(n^2)
時間複雜度只能大概的表示所用的時間。
而一些基本步驟 所執行的時間不同 我們無法計算 所以省略如for(int i = 0;i < n;++i)a = b;
和for(int i = 0;i < n;++i);這個執行的時間當然是第二個快 但是他們的時間複雜度都是 o(n)判斷時間複雜度看迴圈。
13樓:愛上鳥兒
乙個演算法花費bai的時間與。
du演算法中語句的執行次zhi
數成正比例,時間dao複雜度一般。
專用o(f(x))表屬。
示。 f(x)在簡單程式中就是看有幾個for迴圈,然後看看再它的判斷語句,就是看看它執行了幾次,f(x)=「執行的次數」。
像題中的(1)有乙個for迴圈執行次數為n次,所以f(x)=n,時間複雜度就為o(n)
2)有兩個for迴圈執行次數為n*n,即n的平方,所以f(x)=n的平方,時間複雜度就是o(n的平方)。
3)是遞迴,它也執行了n次所以它的時間複雜度就是o(n).
不過要注意時間複雜度的f(x)在有限次時就用具體數值表示,無限次時就用n,n的平方,log以2為底n的對數,其實很簡單就是看n的最高次方,看n的最高次方等於幾,f(x)就等於幾。
14樓:茆環卷良駿
有計劃地安排每天的工作。
15樓:冒樹花邗媚
在一般情況下,乙個。
bai演算法的時du間複雜度是(關於問zhi題規模n)的函式。dao設待處理問題內。
的規模為n,若一。
個算容法的時間複雜度為乙個常數,則表示成數量級的形式為(o(1)),若為n*log25n,則表示成數量級的形式為(o(nlogn))。
16樓:萬彩喜笑陽
時間複雜度是度量演算法執行的時間長短;而空間複雜度是度量演算法所需儲存空間的大小。
2.一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f(n),因此,演算法的時間複雜度記做:t(n)=o(f(n))
分析:隨著模組n的增大,演算法執行的時間的增長率和f(n)的增長率成正比,所以f(n)越小,演算法的時間複雜度越低,演算法的效率越高。
3.在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出t(n)的同數量級(它的同數量級有以下:1,log2n
n,nlog2n
n的平方,n的三次方,2的n次方,n!),找出後,f(n)=該數量級,若t(n)/f(n)求極限可得到一常數c,則時間複雜度t(n)=o(f(n))
例:演算法:for(i=1;i<=n;++i)}則有。
t(n)=n的平方+n的三次方,根據上面括號裡的同數量級,我們可以確定。
n的三次方。
為t(n)的同數量級。
則有f(n)=
n的三次方,然後根據t(n)/f(n)求極限可得到常數c
則該演算法的。
時間複雜度:t(n)=o(n的三次方)
17樓:嘉芸佛駿琛
重要指令執行的頻繁度。
演算法的時間複雜性是指( )。
18樓:匿名使用者
演算法的複雜度分時間複雜度和空間複雜度。
時間複雜度:在執行演算法時所耗費的時間為f(n)(即 n的函式)。
空間複雜度:實現演算法所佔用的空間為g(n)(也為n的函式)。
演算法的時間複雜度什麼意思
19樓:匿名使用者
演算法的時間複雜度通俗的講就是執行演算法所需要的時間(執行多少次賦值、比較、判斷等操作)
為了方便比較,演算法的時間複雜度計算的通常的做法是,從演算法選取一種對於所研究的問題(或演算法模型)來說是基本運算的操作,以其重複執行的次數作為評價演算法時間。該基本操作多數情況下是由演算法最深層環內的語句表示的,基本操作的執行次數實際上就是相應語句的執行次數。
再給你舉個簡單的例子吧:
for(int i = 0; i < n;++i); 這個迴圈執行n次 所以時間複雜度是o(n)for(int i = 0; i< n;++i)這巢狀的兩個迴圈 而且都執行n次。
那麼它的時間複雜度就是 o(n^2)
時間複雜度只能大概的表示所用的時間。
而一些基本步驟所執行的時間不同,但是由於很難精確無法計算,所以省略如:for(int i = 0;i < n;++i)a = b;
和 for(int i = 0;i < n;++i); 這個執行的時間當然是第二個快,但是他們的時間複雜度都是 o(n) ,由於a=b運算時間可以忽略不計,所以判斷時間複雜度主要看迴圈的複雜度。
20樓:網友
因為設計演算法需要考慮計算量的問題,電腦的計算能力是有限的,因此為了實現同樣的結果計算量是越小越好。
舉乙個例子我們要計算 n*2 可以有兩種方法。
方法1 直接計算n*2 這樣就需要進行一次乘法運算,對於少量的資料,或者n比較小時還沒有明顯的感覺,但是如果成百上千的n 計算機是需要很長的時間。
如果你學過指令週期你就知道一次整形資料的乘法運算需要十幾到幾十個指令週期。
那麼指令週期是什麼意思,比如你的電腦是1g的cpu,也就相當於1s 能計算10^9方次,那麼乙個指令週期就是 1/(10^9),所以主頻越快,計算速度也越快。
假如一次乘法需要20個指令週期,那麼如果要n有10^9個,那麼需要計算10^9次乘法運算則需要20s
方法2 將資料向左移1位,如果是n*4 則移2位,n*8 3位 依次類推,對於計算機實現一次資料移位時非常容易的大概也就是 3個指令週期,此時要算。
10^9個資料,那麼指需要 3s即可。
一次方法2的時間複雜度要遠低於方法1
這只是為了說明乙個問題,須注意的是演算法2的實現需要有乙個乘數是2的整數次冪。
演算法的時間複雜度與空間複雜度各是什麼意思
是說明一個程式根據其資料n的規模大小 所使用的大致時間和空間說白了 就是表示 如果隨著n的增長 時間或空間會以什麼樣的方式進行增長 例for int i 0 i n i 這個迴圈執行n次 所以時間複雜度是o n for int i 0 i n i 這巢狀的兩個迴圈 而且都執行n次 那麼它的時間複雜度...
時間複雜度log是怎麼計算出的,請問演算法的時間複雜度是怎麼計算出來的
i每迴圈一次就乘了2,知道當i n時迴圈結束,迴圈m次有2 m n,得到m log2n。時間複雜度 同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。一個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 ...
apriori演算法的時空複雜度是多少
遺傳演算法其實就是二重迭代,時間複雜度不超過n平方 空間複雜度自己計算吧 資料探勘中的apriori演算法的具體步驟是什麼?演算法 apriori 輸入 d 事務資料庫 min sup 最小支援度計數閾值 輸出 l d中的頻繁項集 方法 l1 find frequent 1 itemsets d 找...