1樓:您輸入了違法字
一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得t(n)/f(n)的極限值(當n趨近於無窮大時)為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),稱o(f(n)) 為演算法的漸進時間複雜度,簡稱時間複雜度。
分析:隨著模組n的增大,演算法執行的時間的增長率和 f(n) 的增長率成正比,所以 f(n) 越小,演算法的時間複雜度越低,演算法的效率越高。
在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出 t(n) 的同數量級(它的同數量級有以下:1,log2n,n,n log2n ,n的平方,n的三次方,2的n次方,n!),找出後,f(n) = 該數量級,若 t(n)/f(n) 求極限可得到一常數c,則時間複雜度t(n) = o(f(n))
2樓:歲月就這麼說
o(n):
for(i=0;i<100;i++)
o(n^2):
for(i=0;i<100;i++)
for(j=0;j<100;j++)
簡介同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。
演算法複雜度
演算法複雜度分為時間複雜度和空間複雜度。其作用: 時間複雜度是指執行演算法所需要的計算工作量;而空間複雜度是指執行這個演算法所需要的記憶體空間。
(演算法的複雜性體現在執行該演算法時的計算機所需資源的多少上,計算機資源最重要的是時間和空間(即暫存器)資源,因此複雜度分為時間和空間複雜度。)
時間複雜度
一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)。
一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f (n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),稱o(f(n)) 為演算法的漸進時間複雜度,簡稱時間複雜度。
在各種不同演算法中,若演算法中語句執行次數為一個常數,則時間複雜度為o(1),另外,在時間頻度不相同時,時間複雜度有可能相同,如t(n)=n2+3n+4與t(n)=4n2+2n+1它們的頻度不同,但時間複雜度相同,都為o(n2)。
快速排序方法的時間複雜度為o(n^2)=n(n-1)/2中o()是什麼意思? 200
3樓:匿名使用者
o(1): 表示演算法
的執行時間為常量
o(n): 表示該演算法是線性演算法
o(㏒2n): 二分查詢演算法
o(n2): 對陣列進行排序的各種簡單演算法,例如直接插入排序的演算法。
o(n3): 做兩個n階矩陣的乘法運算
o(2n): 求具有n個元素集合的所有子集的演算法o(n!):
求具有n個元素的全排列的演算法o(n²)表示當n很大的時候,複雜度約等於**²,c是某個常數,簡單說就是當n足夠大的時候,n的線性增長,複雜度將沿平方增長。
一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。
一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)。
一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),稱o(f(n))
為演算法的漸進時間複雜度,簡稱時間複雜度。
4樓:匿名使用者
1)對於你的問題簡單解釋如下:
理論計算機研究中,衡量演算法一般從兩個方面分析:時間複雜度和空間複雜度。空間複雜度跟時間複雜度是類似的,下面簡單解釋一下時間複雜度:
對於一個資料規模為n的問題,解決該問題的演算法所用時間可以用含有n的函式t(n)來表示。對於絕大多數情況,我們只需要瞭解演算法的一般效能而不考慮細節,也就是說,我們只關心函式t(n)的表示式的形式,而不關心表示式的常數係數等與資料規模沒有關係的量值。對於函式t(n),我們又進一步將它簡化為o(n),即只考慮演算法平均執行時間的「瓶頸」,也就是t(n)表示式中,關於變數n增長最快的哪一項。
比如下面的**:
for(int i=1; i<=n*2; i++)for(int j=1; j<=n; j++)// do something here
那麼這個演算法的時間複雜度就是o(n^2),因為它有兩層迴圈,每層迴圈的資料規模都是n。注意第一層迴圈(外迴圈)要迭代n*2次,則實際上t(n)=2*n*n,而對於o(n)來說,我們忽略了常數2,只保留了n^2。這就是大o記法的一個概括,並不精確。
對於時間複雜度的更精確、深入的解釋,可以自己查閱《演算法導論》第一章。
2)更正你的問題:快速排序演算法的時間複雜度應該為o(n lg n)。注意三種時間複雜度符號表示的不同意義!
英文字母o代表的是平均執行時間,因此對於快速排序來說應該是o(n lg n)。而使用下界函式omega或者上界函式theta則分別表示演算法執行的最快和最慢時間。對於未使用隨機化的快速排序,理論上可以證明,存在某一方法構造出一組資料使快速排序「退化」成平方複雜度演算法即theta(n^2)。
但是對於其o(n)表示法應該為o(n^2)。
o(n)是什麼
5樓:guxuecan劍
o(n)不是演算法,它是一個函
數,是一個表徵演算法時間複雜度的一個函式。
電腦科學中,演算法的時間複雜度是一個函式,它定性描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。
使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。
6樓:匿名使用者
1、時間複雜度
(1)時間頻度
一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。
一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)。
(2)時間複雜度
在剛才提到的時間頻度中,n稱為問題的規模,當n不斷變化時,時間頻度t(n)也會不斷變化。但有時我們想知道它變化時呈現什麼規律。為此,我們引入時間複雜度概念。
一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),稱o(f(n)) 為演算法的漸進時間複雜度,簡稱時間複雜度。
在各種不同演算法中,若演算法中語句執行次數為一個常數,則時間複雜度為o(1),另外,在時間頻度不相同時,時間複雜度有可能相同,如t(n)=n2+3n+4與t(n)=4n2+2n+1它們的頻度不同,但時間複雜度相同,都為o(n2)。
按數量級遞增排列,常見的時間複雜度有:
常數階o(1),對數階o(log2n),線性階o(n),
線性對數階o(nlog2n),平方階o(n2),立方階o(n3),...,
k次方階o(nk),指數階o(2n)。隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。
7樓:方田
^o(n)表示時間複雜度,它是衡量一個演算法消耗時間的量度
如:計算f(x)=x^3+2x^2+5x-6中,隨著x的不斷趨向極端(即正無窮與負無窮)時,x^3越來越起主導作用,所以我們稱這個演算法的時間負雜度為o(3)
8樓:匿名使用者
對對對哇哇哇但事實上
9樓:匿名使用者
時間複雜度,瞭解其含義,可以看一些演算法方面的書
列舉一個時間複雜度為o(n)和o(n2)的演算法。
10樓:影墨者
o(n):
for(i=0;i<100;i++)
o(n^2):
for(i=0;i<100;i++)
for(j=0;j<100;j++)
某演算法的時間複雜度為o(n),表明該演算法的:
11樓:真真
選c說明演算法的時間複雜度tn小於等於**(c為比例常數),即tn=o(n),時間複雜度是問題規模n的函式。
12樓:飛沛和妙珍
一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)。
t(n)=o(n*n)的意思就是演算法大概執行n的平方次,時間與執行次數成正比。,問題規模還是n。
跟o()沒有關係。
13樓:我已萌出天際
n就是問題的規模,因此a答案不對,答案是c,時間複雜度就是執行時間,o代表同數量級,至於答案b,則是c中包含的特例,一般o(n^2)得演算法並不一定是執行時間等於n^2
複雜網路中的巨片是什麼意思,複雜網路中的巨片是什麼意思
複雜網路 plex work 是指具有自組織 自相似 吸引子 小世界 無標度中部分或全部性質的網路稱為複雜網路。特徵 小世界 叢集即集聚程度的概念 冪律的度分佈概念。複雜網路中的無標度網路和小世界網路有什麼區別,各自的特徵是什麼?無標度網路和小世界網路 的最大區別是他們的度分佈的差別無標度網路的度分...
為。是什麼意思,「敢為」是什麼意思?
一般表示做 作為 表因為某人做某事。有時也表被動。本解釋為 w i 1.做,行,做事 為人 做人 時。難。不 己甚 不做得太過分 2.當做,認做 以 認 習以 常。3.變成 成 4.是 十兩 一斤。5.治理,處理 政。6.被 天下笑。7.表示強調 大 惱火。8.助詞,表示反詰或感嘆 敵未滅,何以家 ...
外露性是什麼意思,鋒芒外露是什麼意思
他們的情緒完全表露在外,絲毫不加控制和掩飾。例如,想哭就哭,想笑就笑。他們也不認為這有什麼不合理。鋒芒外露 是什麼意思?鋒芒外露 的意思就是銳氣和才華全都顯露出來,多指內人好表現容自己。鋒芒外露 f ng m ng w i l 一 近義詞 鋒芒畢露,霸氣外露,脫穎而出,盛氣凌人 二 反義詞 不露頭角...