演算法的基本概念是什麼,演算法複雜度的概念和意義

2021-03-04 07:35:50 字數 5213 閱讀 4199

1樓:西風恨

演算法是指按照一定規則解

決某一類問題的明確和有限的步驟。

演算法複雜度主要表現為時間複雜度和空間複雜度,同一演算法其複雜度將直接影響其演算法乃至程式的優劣。一般來說,演算法的複雜度越低,其效率就越高。演算法複雜度是衡量程式優劣及效率的重要指標。

2樓:

演算法是一系列解決問題的清晰指令,也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。

一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。

演算法可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟。或者看成按照要求設計好的有限的確切的計算序列。

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

3樓:超超

計算機系統中的任何軟體,都是由大大小小的各種軟體組成部分構成,各自按照特定的演算法來實現,演算法的好壞直接決定所實現軟體效能的優劣.用什麼方法來設計演算法,所設計演算法需要什麼樣的資源,需要多少執行時間,多少儲存空間,如何判定一個演算法的好壞,在實現一個軟體時,都是必須予以解決的.計算機系統中的作業系統,語言編譯系統,資料庫管理系統以及各種各樣的計算機應用系統中的軟體,都必須用一個個具體的演算法來實現.

因此,演算法設計與分析是電腦科學與技術的一個核心問題.

歐幾里德曾在他的著作中描述過求兩個數的最大公因子的過程.20世紀50年代,歐幾里德所描述的這個過程,被稱為歐幾里德演算法,演算法這個術語在學術上便具有了現在的含義.下面是這個演算法的例子及它的一種描述.

歐幾里德曾在他的著作中描述過求兩個數的最大公因子的過程.20世紀50年代,歐幾里德所描述的這個過程,被稱為歐幾里德演算法,演算法這個術語在學術上便具有了現在的含義.下面是這個演算法的例子及它的一種描述.

演算法複雜度的意義是什麼?

4樓:匿名使用者

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

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的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。

2、空間複雜度

與時間複雜度類似,空間複雜度是指演算法在計算機內執行時所需儲存空間的度量。記作:

s(n)=o(f(n))

說到底,就是程式執行效率和佔用空間的問題.

演算法複雜度是什麼概念?

5樓:江湖三腳貓

看下資料結構,簡單解釋下:

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

時間複雜度就是執行演算法所需要的時間(執行多少次賦值、比較、判斷等操作),空間複雜度就是執行該演算法需要消耗多少儲存空間。

2者都是越低越好,但往往不能兼顧,需要找到時間和空間複雜度的平衡點。

什麼是演算法複雜度

6樓:淡輕沐

演算法複雜度,即演算法在編寫成可執行程式後,執行時所需要的資源,資源包括

時間資源和記憶體資源。

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

時間複雜度

(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)) 為演算法的漸進時間複雜度,簡稱時間複雜度。

空間複雜度

與時間複雜度類似,空間複雜度是指演算法在計算機內執行時所需儲存空間的度量。記作:

s(n)=o(f(n))

演算法執行期間所需要的儲存空間包括3個部分:

·演算法程式所佔的空間;

·輸入的初始資料所佔的儲存空間;

·演算法執行過程中所需要的額外空間。

在許多實際問題中,為了減少演算法所佔的儲存空間,通常採用壓縮儲存技術。

7樓:匿名使用者

演算法分析

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

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的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。

2、空間複雜度

與時間複雜度類似,空間複雜度是指演算法在計算機內執行時所需儲存空間的度量。記作:

s(n)=o(f(n))

我們一般所討論的是除正常佔用記憶體開銷外的輔助儲存單元規模。討論方法與時間複雜度類似,不再贅述。

8樓:匿名使用者

簡單的說你要經過多少步驟幹完一件事,度高步驟多反之相反

9樓:戚菊有裳

看下資料結構,簡單解釋下:

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

時間複雜度就是執行演算法所需要的時間(執行多少次賦值、比較、判斷等操作),空間複雜度就是執行該演算法需要消耗多少儲存空間。

2者都是越低越好,但往往不能兼顧,需要找到時間和空間複雜度的平衡點。

演算法的時間複雜度定義

10樓:手機使用者

在進行演算法分析時,語句總的執行次數t(n)是關於問題規模n的函式,進而分析t(n)隨n的變化情況並專確定t(n)的數量級。算

屬法的時間複雜度,也就是演算法的時間量度。記作:t(n)=o(f(n))。

它表示隨問題n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸進時間複雜度,簡稱為時間複雜度。其中,f(n)是問題規模n的某個函式。

這樣用大寫o()來體現演算法時間複雜度的記法,我們稱之為大0記法。

11樓:唸書宦詩珊

只能告訴你。

耗。你想一下告白成功是不可能的,那樣朋友都做不了。

這種型別典型的版心理已經築起權

防線了。

又或者對從前還保佑懷念。

這種型別

不管男生女生,都一樣。

不是不想談戀愛,只是沒有走出來。

所以,你要陪她走出來,

所以你要慢慢來,

急不來。

演算法的時間複雜度on到底怎麼算,演算法的時間複雜度On到底怎麼算

看迴圈bai 或者遞迴的層du數。zhi比如該函 dao數為版o n 權 int f int x,int y int i,j for i 0 i 而該函式為o n2 int f int x,int y int i,j for i 0 i 某演算法的時間複雜度為o n 表明該演算法的 選c說明演算法的...

在下列排序演算法中,哪演算法的時間複雜度與初始排序無關

在下列排序演算法中,哪一個演算法的時間複雜度與初始排序無關 a.插入排序 b.起泡排序 c.快速排序 d.選擇排序 在下列排序演算法中,哪一個演算法的時間複雜度與初始排序無關 d不管原陣列是什麼樣子,每一次你都要遍歷一邊剩餘的數來選取最大 最小值 演算法的時間複雜度與初始排序無關的都有什麼排序 常見...

資料結構演算法並說明時間複雜度和空間複雜度

演算法主要用了一個bai額外du的先入後出的線性表 即棧zhi 假定dao陣列為版num n 流程如下 1.先申請一個能存放權n個整數的棧。2.把原有陣列的後n p個元素,從後面num n 1 到num p 開始依次壓入棧。3.把陣列的前p個元素,從num p 1 開始,把num n 1 num p...