演算法的空間複雜度,時間複雜度,有窮性分別是什麼意思

2021-03-04 05:52:37 字數 3303 閱讀 2166

1樓:匿名使用者

通俗來說:

空間複雜度是指運算過程中佔用的記憶體和輸入的漸進關係。

時間複雜度是指運算過程中使用的時間和輸入的漸進關係。

有窮性是指在有限時間內可以結束運算。

演算法的時間複雜度與空間複雜度各是什麼意思

2樓:匿名使用者

是說明乙個程式根據其資料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)判斷時間複雜度看迴圈

3樓:匿名使用者

《計算方法》中有相關的詳細資訊。本質上,不論時間複雜度還是空間複雜度都反應的是問題本身的複雜度。乙個計算要不就需要很大的儲存空間來減少計算時間;要不就需要較長的計算時間來節約儲存空間。

時間或空間複雜度也用來衡量各種計算方法對於不同的計算要求的表現。比如,不同的計算方法其實在時空複雜度上是相同的。

關於具體的時間複雜度與空間複雜度是如何量化的,如何計算,如何應用還是仔細看看教材吧。

演算法的空間複雜度於時間複雜度的關係?

4樓:幽靈軍團

有「必定」的話不對。因為對一些特殊情況存在特例有高的時空複雜度或同時為低的時空複雜度。但對一般情況下給定儲存空間如給定65535k的記憶體但不限定時間時,就存在時間空間的負相關關係。

對於既不限定時間,也不限定空間的程式,演算法的時間複雜度和空間複雜度可以同時很大,也可以同時很小。如t(n)=o(n)且s(n)=o(1)的情況比如乙個for(i=0;i

演算法的空間複雜度指的是什麼?

5樓:匿名使用者

空間複雜度(space ***plexity)是對乙個演算法在執行過程中臨時佔用儲存空間大小的量度,記做s(n)=o(f(n))。比如直接插入排序的時間複雜度是o(n^2),空間複雜度是o(1) 。

而一般的遞迴演算法就要有o(n)的空間複雜度了,因為每次遞迴都要儲存返回資訊。乙個演算法的優劣主要從演算法的執行時間和所需要佔用的儲存空間兩個方面衡量。

類似於 時間複雜度的討論,乙個演算法的空間複雜度s(n)定義為該演算法所耗費的儲存空間,它也是問題規模n的函式。漸近空間複雜度也常常簡稱為空間複雜度。空間複雜度(space***plexity)是對乙個演算法在執行過程中臨時佔用儲存空間大小的量度。

乙個演算法在計算機儲存器上所佔用的儲存空間,包括儲存演算法本身所佔用的儲存空間,演算法的輸入輸出資料所佔用的儲存空間和演算法在執行過程中臨時佔用的儲存空間這三個方面。演算法的輸入輸出資料所佔用的儲存空間是由要解決的問題決定的,是通過參數列由呼叫函式傳遞而來的,它不隨本演算法的不同而改變。

6樓:匿名使用者

上網查了一下,覺得這個可能幫助你解決問題演算法的空間複雜度一般是指這個演算法執行時所需要的記憶體空間,其中包括演算法程式所佔的空間、輸入的初始資料所佔的儲存空間以及演算法執行過程中所需要的額外空間,其中額外空間還包括演算法程式執行過程的工作單元以及某種資料結構所需要的附加儲存空間。 選b

7樓:匿名使用者

這不誤人子弟嗎。演算法時間復

雜度不用說了。定義說得很明白,空間複雜度是程式所用到的儲存空間的大小程度。這裡程式是抽象泛化的,空間也是泛化的,指的是演算法理論上用到的所有空間,無論是記憶體外存(硬碟光碟這些都叫存)都是儲存器,無非速度不等而已,答案就是a

8樓:匿名使用者

應該是針對於儲存空間而言的,而不是執行時的記憶體空間

9樓:學習者人聖

本題選b,但是b中描述不到位,因該是演算法執行過程中所佔用的儲存空間,而不應形容成記憶體;且這個儲存空間重點是執行過程中的而非演算法本身佔用的儲存空間故a是錯誤的。

10樓:才餓死

答案沒錯,選a,背上就行

演算法的時間複雜度和空間複雜度怎麼看

11樓:霸王學習機

時間複雜度,就是計算程式執行的時間,空間複雜度, 就是所佔的記憶體空間。

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

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

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

空間複雜度(space ***plexity)是對乙個演算法在執行過程中臨時佔用儲存空間大小的量度,記做s(n)=o(f(n))。比如直接插入排序的時間複雜度是o(n^2),空間複雜度是o(1) 。而一般的遞迴演算法就要有o(n)的空間複雜度了,因為每次遞迴都要儲存返回資訊。

乙個演算法的優劣主要從演算法的執行時間和所需要佔用的儲存空間兩個方面衡量。

哪位能舉個例子說明一下演算法中時間複雜度和空間複雜度是怎麼算的

12樓:手機使用者

1.空間複雜度:

比如java中int是4個位元組,long是8個位元組,你可以用long表示乙個數字,long a=100,同樣可以用int b=100;這樣我們用int肯定比long要節省空間,再者就是同樣讓許多人編寫乙個c程式,其中用的變數的個數可能大不一樣,變數越多可能你的程式越容易讓別人看懂,但變數越少,程式可能看懂的人不多,不過現在都不再強調這複雜度,1g的記憶體多的是了,幾個位元組也不算什麼了,不過在硬體驅動開發的時候比較講究這個

2.時間複雜度:

這是乙個相對的概念,比如我用p2的電腦和p4的同樣執行乙個程式,你說哪個快?只能在一定的硬體環境下談時間複雜度

;所以程式步的方式來說時間複雜度比較方便

打個比方:

for(int i=0;i<100;i++)sum=sum+i;這條語句執行了100次,就說這條語句的程式步是100;像註釋,宣告語句的程式步都為0;

演算法的空間複雜度指的是什麼演算法的空間複雜度是指?

空間複雜度 space plexity 是對乙個演算法在執行過程中臨時佔用儲存空間大小的量度,記做s n o f n 比如直接插入排序的時間複雜度是o n 2 空間複雜度是o 1 而一般的遞迴演算法就要有o n 的空間複雜度了,因為每次遞迴都要儲存返回資訊。乙個演算法的優劣主要從演算法的執行時間和所...

關於時間複雜度的計算,如何計算時間複雜度?

給我十分,我告訴你答案。請問樓主答案,我也不會。如何計算時間複雜度?一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f n 因此,演算法的時間複雜度記做 t n o f n 隨著模組n的增大,演算法執行的時間的增長率和f n 的增長率成正比,所以f n 越小,演算法的時間複雜度越低,演...

什麼是並行演算法的複雜度?複雜度作用?可以通過哪些指標來分析

時間複雜度 演算法的時間複雜度是指執行演算法所需要的時間。一般來說,計算機演算法是問題規模n 的函式f n 演算法的時間複雜度也因此記做。t n f n 因此,問題的規模n 越大,演算法執行的時間的增長率與f n 的增長率正相關,稱作漸進時間複雜度 2.空間複雜度 演算法的空間複雜度是指演算法需要消...