c中時間複雜度是什麼意思,C 中時間複雜度是什麼意思

時間 2021-08-30 10:50:13

1樓:舒問

就是演算法在執行過程中所需要的基本運算次數就叫時間複雜度。

2樓:匿名使用者

建議去看看資料結構與演算法,裡面有詳細解釋。簡單點的解釋就是,一個演算法有他的複雜度,這個就由時間複雜度和空間複雜度組成。時間複雜度就是這個演算法所需要的時間。

空間複雜度就是演算法所需要的記憶體空間。

3樓:秋天的眼淚胡

同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。

電腦科學中,演算法的時間複雜度是一個函式,它定量描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。

使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。

4樓:

時間複雜度,就是演算法佔用的時間,一般用某些基本操作的頻度表示。

表示為 t(n)=o(f(n))

n 表示資料規模,對於排序演算法,

n 指的是參與排序的資料個數。

對於排序演算法

基本操作 指的是比較和賦值操作

t(n)=o(f(n)) 表示 t(n)<= c*(f(n)); 指的是在相差常量因子的情況下,

基本操作的頻度在

n某 個函式以下

f(n)是 規模的函式

一般是指

log(n) ,log^2(n), n ,n^2,n^k ,2^n 等

c++中的時間複雜度o(1)與o(n)有什麼區別

5樓:杜xiao若

c++中的bai時間複雜度o(du1)與o(n)的主要區別在於:zhi

1、時間複雜度o(1)是常數階

dao,其基本

內操作重複執行的次數是一個固定的容常數,執行次數不存在變化;

2、而時間複雜度o(n)是線性階,其基本操作重複執行的次數是與模組n成線性相關的,其值會隨著模組n的變化而變化,當模組n的規模確定為定值後,其時間複雜度轉化為o(1)。

擴充套件資料1.時間複雜度的計算方法:

一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得t(n)/f(n)的極限值(當n趨近於無窮大時)為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),稱o(f(n)) 為演算法的漸進時間複雜度,簡稱時間複雜度。

6樓:幻夢·人生

時間複雜度是

來一個函源數,它定量描述了該bai演算法的執行時間。常du

見的zhi時間複雜度有以下幾種。

1,daolog(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!

1指的是常數。即,無論演算法的輸入n是多大,都不會影響到演算法的執行時間。這種是最優的演算法。而n!(階乘)是非常差的演算法。當n變大時,演算法所需的時間是不可接受的。

用通俗的話來描述,我們假設n=1所需的時間為1秒。那麼當n = 10,000時。

o(1)的演算法需要1秒執行完畢。

o(n)的演算法需要10,000秒 ≈ 2.7小時 執行完畢。

o(n2)的演算法需要100,000,000秒 ≈ 3.17年 執行完畢。

o(n!)的演算法需要******xx(系統的計算器已經算不出來了)。

可見演算法的時間複雜度影響有多大。

所以o(1)和o(n)差了2.7小時,區別顯而易見。

7樓:匿名使用者

你理解錯了,bai

我舉個du例子:

你設計了一個字串zhi類:客

dao戶有時需要知道字串的專長度,

所以有兩種屬設計getlength()函式的方法1。每次客戶詢問長度,你都用迴圈檢測串長,即for(i=0;str[i]!=0;++i)這樣效率低 時間複雜度o(n)

2 每次串內容改變時才算長度,算好後存起來,以後客戶需要知道字串的長度就直接把變數值返回這樣效率高 時間複雜度o(1)

8樓:匿名使用者

o(1)複雜度是與輸入資料copy

無關,baio(n)是與輸入資料成正比。

對於du程式zhia,for(int i=0;i<1000;i++),當輸入任意的n時迴圈次數dao均為1000,複雜度為o(1);

對於程式b,for(int i=0;i

c++ 資料結構 時間複雜度

9樓:匿名使用者

for (int p = 0; p < n*n; p++)for (int q = 0; q < p; q++)s1; // 執行 (n*n) * (n*n-1) / 2 次, 所以是 o(n^4)

for (int p = 0; p < n*n*n; p++)for (int q = 0; q < p*p; q++)s1; // 具體次數不太好判斷, 不過應該是o(n^9)

10樓:王德彪夷峽

(n/2)*(n) = o(n^2)

滿意請採納。

c/c++求個時間複雜度簡單的

11樓:匿名使用者

複雜度應該是o(m*n)

可以分析下,for(i=0;j

複雜度就選其中最大的那一個,就是n*m.

複雜度的計算不只是取複數語句中重複次數最多的那個。每個語句的重複次數相加,然後設當未知變數比如上試中的n和m無限變大時,則n*m+m+1中的m和+1可以忽略不計,所以取m*n為複雜度計算的結果。

12樓:匿名使用者

時間複雜度就是o(m*n).如果是迴圈的次數就是n*(m-1)

c++中如何用**計算演算法時間複雜度

13樓:匿名使用者

可以試著在程式的頭尾兩端記下時間,然後通過相減的方法,計算出時間!

14樓:匿名使用者

時間複雜度一般就是先計算執行次數最多的**執行的次數,再與一個輔助函式相除求極限,這個輔助函式一般為,1,n,n*n等所以時間的複雜度就為:o(1),o(n),o(n^2)等

15樓:

計算複雜度一般是人工估計出來的,很少能用**計算。對於你貼的**,3個for迴圈,每一個迴圈執行的次數都和n有關,因此複雜度為o(n^3)。

你可能會說,第二層和第三層迴圈執行的次數並不是n,而是比n小。但這個從數量級上來說是和n一級的,而並不是比n更低的級別(例如常數級或logn級),所以估計時仍然算作n級,而不需要精確的認為是n/2之類的。

16樓:匿名使用者

zhe這個好難啊。。。我做不到啊。。。我們現在才學c語言程式設計;。

c 中 什麼意思, 在C 中是什麼意思

小炫馬紮 雙冒號 操作符被稱為域操作符 scope operator 含義和用法如下 1.在類外部宣告成員函式。void point area 2.呼叫全域性函式 表示引用成員函式變數及作用域,作用域成員運算子 例 system math sqrt 相當於system.math.sqrt 3.呼叫類...

c中是什麼意思,在c 中 什麼意思

會飛de小雪梨 x 表示式 就是 x x 表示式 的簡寫方式。其中 的 表示式 可以是任何合法的數值表示式。類似地,還有 等等,也都是同樣的意思。例如,最常見的 x 3 就是x x 3 x 3 4 就是x x 3 4 x a b 就是x x a b x a b 就是x x a b 咖啡嚶 i 2 等...

C中的 是什麼意思,C 中 int 是什麼意思?

陌路情感諮詢 可空型別修飾符 引用型別可以使用空引用表示一個不存在的值,而值型別通常不能表示為空。例如string str null 是正確的,int i null 編譯器就會報錯。為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符 來表示,表現形式為 t?例如 int?表示可空的整形,d...