時間複雜度和空間複雜度,時間複雜度和空間複雜度

2021-03-03 21:11:22 字數 5054 閱讀 3108

1樓:情感新港灣

這個來輸入很複雜,最好在

源書上找。

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

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

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

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

2樓:帥氣的小宇宙

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

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

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

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

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

3樓:love生活

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

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

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

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

擴充套件資料:

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

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

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

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

4樓:匿名使用者

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

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

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

5樓:獅子拾號

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

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

時間複雜度常用大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表示開始進行的一次非遞迴呼叫)。演算法的空間複雜度一般也以數量級的形式給出。

6樓:深藍色的貓貓

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

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

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

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

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

拓展資料

時間空間複雜度

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

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

7樓:大野瘦子

空間複雜度:

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

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

時間複雜度:

時間複雜度是一個函式,它定性描述了該演算法的執行時間。

一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)。

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

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

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

8樓:匿名使用者

演算法複雜度分為時間複雜度和空間複雜度。其作用:時間複雜度是指執行這個演算法所需要的計算工作量;而空間複雜度是指執行這個演算法所需要的記憶體空間。

9樓:匿名使用者

空間複雜度:

是程式執行所以需要的額外消耗儲存空間,一般的遞迴演算法就要有o(n)的空間複雜度了,簡單說就是遞迴集算時通常是反覆呼叫同一個方法,遞迴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)) 為演算法的漸進時間複雜度,簡稱時間複雜度。

拓展資料:

1、時間複雜度

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

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

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

2、空間複雜度

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

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

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

時間複雜度,就是計算程式執行的時間,空間複雜度,就是所佔的記憶體空間 什麼叫時間複雜度和空間複雜度?時間複雜度 是程bai序執行的時間du,也可以說是次zhi數 空間複雜度是程式佔用dao的空間 內 如下程式 int a 1000000 int t 0 for int i 0 i 1000 i fo...

求解關於DFS,BFS的演算法時間複雜度分析

記住就行了,dfs bfs時間複雜度對於採用臨接矩陣儲存時是o n 對於採用臨接表時是o n e 如何分析回溯 dfs時間複雜度 因為是選擇其中一個方向不斷前進,直接遇到某條件後才返回到上一次的起點重新嘗試另一條路徑。如果是廣度優先,那麼應該是同時向多個方向進發。圖採用鄰接矩陣和鄰接連結串列表示時,...

for(i 1 in i 2 i)的時間複雜度

for i m i 1 i 2 當m小於等於0時,只判斷了一次便退出迴圈,時間複雜度為1 當m大於等於1時,時間複雜度為n,但是由於i永遠大於等於1,這個迴圈是個死迴圈,n為無窮大。計算方法 1.一般情況下,演算法的基本操作重複執行的次數是模組n的某一個函式f n 因此,演算法的時間複雜度記做 t ...