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

2021-05-20 18:47:10 字數 5727 閱讀 7250

1樓:匿名使用者

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

2樓:匿名使用者

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

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

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

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

3樓:匿名使用者

通俗來說:

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

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

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

時間複雜度與空間複雜度有什麼關係

4樓:匿名使用者

時間複雜度與空間複雜度沒有必然聯絡。但是也有以空間換時間或時間換空間的,此時,它們就會有影響。像雜湊法,用更多的空間,但時間會小於o(n)。

5樓:蓴灬叔

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

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

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

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

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

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

6樓:匿名使用者

沒什麼關係,空進複雜度是你用了多少記憶體,時間複雜度是你用了多少時間

演算法的空間複雜度和時間複雜度是什麼東西?兩者之間有什麼關係嗎

7樓:加

時間複雜度是度量演算法執行的時間長短;而空間複雜度是度量演算法所需儲存空間的大小。 不過一般我們說的時間複雜度是指他執行時計算的次數, 空間複雜度是指執行完一個程式所需記憶體的大小。

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

8樓:霸王學習機

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

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

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

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

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

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

時間複雜度和空間複雜度有什麼區別

9樓:

計算機在完成一個任務的時候有兩個指標,時間和所有記憶體(也就是空間)。這兩者是負相關的。也就是說,當你設計一個特定程式時,你可以選擇使用更多的記憶體,這樣可以達到提高程式執行速度的目的,也就是減少程式執行時間。

另一方面,你也可以選擇使用較少的記憶體,這樣可以節省記憶體但同時程式執行速度會變慢,也就是說程式執行要花費更多的時間。簡言之,演算法中只有兩種策略,要麼以時間換空間,要麼以空間換時間。直接回答問題就是空間複雜度高的演算法其時間複雜度低,反之亦然。

10樓:靳葉運碧萱

時間複雜度,就是計算程式執行的時間,空間複雜度,

就是所佔的記憶體空間

什麼是時間複雜度、空間複雜度?

11樓:帥氣的小宇宙

1、時間複雜度是指執行演算法所需要的計算工作量。

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

2、空間複雜度是指執行這個演算法所需要的記憶體空間。

空間複雜度需要考慮在執行過程中為區域性變數分配的儲存空間的大小,它包括為參數列中形參變數分配的儲存空間和為在函式體中定義的區域性變數分配的儲存空間兩個部分。

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

12樓:love生活

1、時間複雜度:是指一個演算法中的語句執行次數。

演算法分析的目的在於選擇合適演算法和改進演算法。

2、空間複雜度:是對一個演算法在執行過程中臨時佔用儲存空間的度量。

一個演算法在計算機儲存器上所佔用的儲存空間包括儲存演算法本身所佔用的空間,算數和輸入輸出所佔用的儲存空間以及臨時佔用儲存空間三個部分。

擴充套件資料

在一個演算法中,時間複雜度和空間複雜度往往是相互影響的。當追求一個較好的時間複雜度時,可能會使空間複雜度的效能變差,即可能導致佔用較多的儲存空間;

反之,當追求一個較好的空間複雜度時,可能會使時間複雜度的效能變差,即可能導致佔用較長的執行時間。

另外,演算法的所有效能之間都存在著或多或少的相互影響。因此,當設計一個演算法(特別是大型演算法)時,要綜合考慮演算法的各項效能,演算法的使用頻率,演算法處理的資料量的大小,演算法描述語言的特性,演算法執行的機器系統環境等各方面因素,才能夠設計出比較好的演算法。

演算法的時間複雜度和空間複雜度合稱為演算法的複雜度

13樓:匿名使用者

演算法複雜度包括時間複雜度和空間複雜度。

時間複雜度是一個函式,它描述的是執行該演算法所需要的時間,即執行該演算法所需要的計算工作量。

空間複雜度是指演算法在運算的過程中臨時佔的儲存空間的大小,即執行該演算法所用的儲存空間。

14樓:獅子拾號

演算法複雜度分為時間複雜度和空間複雜度。

時間複雜度是指執行演算法所需要的計算工作量。在電腦科學中,演算法的時間複雜度是一個函式,它定性描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。

時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。

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

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

擴充套件資料

時間複雜度

計算方法

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) 越小,演算法的時間複雜度越低,演算法的效率越高。

2、在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出 t(n) 的同數量級(它的同數量級有以下:1,log2n,n,n log2n ,n的平方,n的三次方,2的n次方,n!),找出後,f(n) = 該數量級,若 t(n)/f(n) 求極限可得到一常數c,則時間複雜度t(n) = o(f(n))

例:演算法:

則該演算法的時間複雜度:t(n) = o(n^3) 注:n^3即是n的3次方。

3、在pascal中比較容易理解,容易計算的方法是:看看有幾重for迴圈,只有一重則時間複雜度為o(n),二重則為o(n^2),依此類推,如果有二分則為o(logn),二分例如快速冪、二分查詢,如果一個for迴圈套一個二分,那麼時間複雜度則為o(nlogn)。

空間複雜度

計算方法

一個演算法的空間複雜度只考慮在執行過程中為區域性變數分配的儲存空間的大小,它包括為參數列中形參變數分配的儲存空間和為在函式體中定義的區域性變數分配的儲存空間兩個部分。若一個演算法為  遞迴演算法,其空間複雜度為遞迴所使用的堆疊空間的大小,它等於一次呼叫所分配的臨時儲存空間的大小乘以被呼叫的次數(即為遞迴呼叫的次數加1,這個1表示開始進行的一次非遞迴呼叫)。演算法的空間複雜度一般也以數量級的形式給出。

15樓:深藍色的貓貓

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

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

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

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

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

拓展資料

時間空間複雜度

對於一個演算法,其時間複雜度和空間複雜度往往是相互影響的。當追求一個較好的時間複雜度時,可能會使空間複雜度的效能變差,即可能導致佔用較多的儲存空間;反之,當追求一個較好的空間複雜度時,可能會使時間複雜度的效能變差,即可能導致佔用較長的執行時間。另外,演算法的所有效能之間都存在著或多或少的相互影響。

因此,當設計一個演算法(特別是大型演算法)時,要綜合考慮演算法的各項效能,演算法的使用頻率,演算法處理的資料量的大小,演算法描述語言的特性,演算法執行的機器系統環境等各方面因素,才能夠設計出比較好的演算法。演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。

時間複雜度,組成原理

時間複雜度,也就是演算法 處理一個問題需要多長時間。空間複雜度也要分析,不過時間複雜度更重要。下面是詳細解答 1 時間複雜度 1 時間頻度 一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個...

怎樣算時間複雜度

1.時間頻度 一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就...

折半查詢遞迴版的時間複雜度是多少,空間複雜度是多少?那非遞迴版的呢

遞迴折半查詢的時間複雜度是o log2n 空間複雜度是o log2n 也是遞迴的最大深度 非遞迴的時間複雜度是o log2n 空間複雜度是o 1 僅僅用幾個單變數就夠了 大學理工類都有什麼專業 10 理工類專業 數學與應用數學 資訊與計算科學 物理學 應用化學 生物技術 地質學 大氣科學類 理論與應...