時間複雜度相同的演算法一樣好嗎,氣泡排序演算法的時間複雜度是什麼

時間 2021-10-29 12:57:57

1樓:大二的猴

如果只分析你上面段程度,顯然方法二做了許多無用功,當然一好。

時間複雜度估的是個時間隨規模n增長的趨勢,他倆的趨勢是一樣的。給定規模n,如果方法二能跑,那方法一肯定能跑,只不過比前者多常數倍時間而已,你跑1秒,我不過跑2秒而已,你跑一天,我跑倆天而已,你要跑一年以上,那勸你還是找個更快的演算法吧,從這個角度理解,它倆是一樣的。由於是常數倍的,不會隨著n增長而增長,所以可以說和方法二一樣。

另外演算法的實現還帶著常係數,o(n)啥的都把係數略掉了,之所以略掉,是因為它不隨著n的增長而改變,相同時間複雜度的演算法之間,實現時間本身就差著常數倍。

2樓:手機使用者

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)=n^2+3n+4與t(n)=4n^2+2n+1它們的頻度不同,但時間複雜度相同,都為o(n^2)。

按數量級遞增排列,常見的時間複雜度有:

常數階o(1),對數階o(log2n),線性階o(n),

線性對數階o(nlog2n),平方階o(n^2),立方階o(n^3),...,

k次方階o(nk),指數階o(2n)。隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。

2、空間複雜度

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

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

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

3樓:匿名使用者

時間複雜度相同,就比空間複雜度,當然佔用記憶體空間小的演算法好,而且一般說的時間複雜度好像是最糟的,還可以比較平均執行時間。

氣泡排序演算法的時間複雜度是什麼?

4樓:zanier科技

初始bai狀態是正序的,du一趟掃描即可完成排序,zhi所需的關鍵字比dao較次數和記錄移動

版次數均達到最小值:權

氣泡排序就是把小的元素往前調或者把大的元素往後調,比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。

所以,如果兩個元素相等,是不會再交換的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以氣泡排序是一種穩定排序演算法。

5樓:寒廷謙顧子

氣泡排序的演算法

抄時間複雜度

襲上o(n^2

)氣泡排序是這樣實現的:

首先將所有待排序的數字放入工作列表中。

從列表的第一個數字到倒數第二個數字,逐個檢查:若某一位上的數字大於他的下一位,則將它與它的下一位交換。

重複2號步驟,直至再也不能交換。

氣泡排序的平均時間複雜度與插入排序相同,也是平方級的,但也是非常容易實現的演算法。

選擇排序

選擇排序是這樣實現的:

設陣列記憶體放了n個待排數字,陣列下標從1開始,到n結束。

i=1從陣列的第i個元素開始到第n個元素,尋找最小的元素。

將上一步找到的最小元素和第i位元素交換。

如果i=n-1演算法結束,否則回到第3步

選擇排序的平均時間複雜度也是o(n^2)的。

6樓:匿名使用者

o(n^2),可以通過程式來驗證

小於10000個資料的陣列用它不會超時(大概一秒)

但如果更大就要用快排或歸併o(n*log2(n))

7樓:黑綠藍

最好情況o(n)

最壞情況o(n^2)

平均情況o(n^2)

問演算法的時間複雜度為,問 乙個演算法的時間複雜度為 n3 n2log2n 14n n2,其數量級表示為

這個表示式的分母是n的平方吧,這樣的話,結果是o n 因為時間複雜度是計算n趨於無窮大時候的無窮大量的最大階次,這樣除完了的結果第一項是n,第2項是log2n,第3項是1 n,當n趨於無窮大時,第二項比第一項小,第3項為0 乙個演算法的時間複雜度為 n3 n2log2n 14n n2,其數量級表示為...

時間複雜度的計算。時間複雜度怎麼計算?

1.時間複雜度o n 2 2.時間複雜度o n 2 3.時間複雜度o n 2 4.時間複雜度o n 5.時間複雜度o n 3 一般來說,時間複雜度是總運算次數表示式中受n的變化影響最大的那一項 不含係數 比如 一般總運算次數表示式類似於這樣 a 2 n b n 3 c n 2 d n lg n e ...

設計n個數的排序演算法,並要求計算演算法複雜度

訾可欣迮詞 氣泡排序的演算法時間複雜度上o n 2 氣泡排序是這樣實現的 首先將所有待排序的數字放入工作列表中。從列表的第一個數字到倒數第二個數字,逐個檢查 若某一位上的數字大於他的下一位,則將它與它的下一位交換。重複2號步驟,直至再也不能交換。氣泡排序的平均時間複雜度與插入排序相同,也是平方級的,...