當前位置:首頁 » 半夜時分 » 為什麼用大o表示時間復雜度

為什麼用大o表示時間復雜度

發布時間: 2022-03-02 18:46:58

Ⅰ 分析下面的代碼的時間復雜度,使用大O階記法表示

常見的 查找演算法的時間復雜度:
線性結構的查找的時間復雜度,如 二分查找(用於已經排好序的數據,如已序的數組);O(n)
非線性結構的查找的時間復雜度,如 二叉查找樹 ;O(log n)

排序類別 時間復雜度 空間復雜度 穩定
1 插入排序 O(n2) O(1) √
2 希爾排序 O(n2) O(1) × //Shell(希爾)排序是基於插入排序的,時間效率比插入、選擇、冒泡高,但又比快速排序低點;
3 冒泡排序 O(n2) O(1) √
4 選擇排序 O(n2) O(1) ×
5 快速排序 O(Nlogn) O(logn) ×
6 堆排序 O(Nlogn) O(1) ×
7 歸並排序 O(Nlogn) O(n) √

冒泡排序、插入排序、歸並排序是穩定的,演算法時間復雜度是O(n ^2);
選擇排序、快速排序、堆排序、希爾排序都是 不穩定的;

演算法的時間復雜度
一、 時間復雜度定義
定義:如果一個問題的規模是n,解這一問題的某一演算法所需要的時間為T(n),它是n的某一函數T(n)稱為這一演算法的「時間復雜性」。
當輸入量n逐漸加大時,時間復雜性的極限情形稱為演算法的「漸近時間復雜性」。

二、大O表示法
我們常用大O表示法表示時間復雜性,注意它是某一個演算法的時間復雜性。大O表示只是說有上界,由定義如果f(n)=O(n),那顯然成立f(n)=O(n^2),它給你一個上界,但並不是上確界,但人們在表示的時候一般都習慣表示前者。此外,一個問題本身也有它的復雜性,如果某個演算法的復雜性到達了這個問題復雜性的下界,那就稱這樣的演算法是最佳演算法。

「大O記法" :在這種描述中使用的基本參數是n,即問題實例的規模,把復雜性或運行時間表達為n的函數。這里的「O」表示量級(order),比如說「二分檢索是O(logn)的」,也就是說它需要「通過logn量級的步驟去檢索一個規模為n的數組」記法O ( f(n) )表示當n增大時,運行時間至多將以正比於f(n)的速度增長。

這種漸進估計對演算法的理論分析和大致比較是非常有價值的,但在實踐中細節也可能造成差異。例如,一個低附加代價的O(n2)演算法在n較小的情況下可能比一個高附加代價的O(nlogn)演算法運行得更快。當然,隨著n足夠大以後,具有較慢上升函數的演算法必然工作得更快。
O(1)
Temp=i;i=j;j=temp;
以上三條單個語句的頻度均為1,該程序段的執行時間是一個與問題規模n無關的常數。演算法的時間復雜度為常數階,記作T(n)=O(1)。如果演算法的執行時間不隨著問題規模n的增加而增長,即使演算法中有上千條語句,其執行時間也不過是一個較大的常數。此類演算法的時間復雜度是O(1)。

O(n^2)
2.1.交換i和j的內容
sum=0; (一次)
for(i=1;i<=n;i++) (n次)
for(j=1;j<=n;j++)(n^2次)
sum++; (n^2次)
解:T(n)=2n^2+n+1 =O(n^2)

Ⅱ 時間復雜度 大o omega

Θ漸進上下界
O漸進上界(最壞情況)
Ω漸進下界(最好情況)

Ⅲ C數據結構編程。求時間復雜度的問題,用大O表示法描述下列程序段的時間復雜度,一共四小題,跪求!

假如是用n衡量輸入規模的話:
(3) O(n)
(4) O(√n)

(5) O(n^3)
(6) 因為不含n,所以是O(1)

Ⅳ 編程中的大O表示法 復雜度計算

在vb中可以這樣計算某值的平方:
toes^2,但在c語言中,則沒有平方運算符,只能寫成
:
toes
*
toes。(在c語言中,「^」是異或運算符)

Ⅳ 用大O表示法求時間復雜度的問題

沒有循環啊
都是一句一句的

Ⅵ 離散數學及其應用裡面的那個大O和Ω表示什麼意思

大O表示法表示時間復雜度,Ω是電阻阻值的單位,漢譯為 歐姆。

Ⅶ 時間復雜度為什麼用O

最早是由德國數學家Paul Bachmann在1894年首先使用的,之後又被另一位德國數學家Edmund Landau在其作品中廣泛使用,因此也叫做Landau symbol(朗道符號)。真正在計算機領域被用於復雜度計算還得歸功於傳奇的Donald Knuth,Omega符號也是他引入的。

Ⅷ 演算法中描述復雜度的大O是什麼意思

在「計算機演算法復雜性分析」課程中,通常使用大 O 符號表述時間復雜度。常見的有:(1)、O(n²):表示當 n 呈線性增長時,計算量按 n² 規律增大。該種演算法是效率最低的一種。
(2)、再例如:要在一個大小為 n 的整數數組中,找到一個該數組裡面的最大的一個整數,因此你需要把 n 個整數都掃描一遍,操作次數為 n,那麼該時間復雜度就是O(n)。

Ⅸ 時間復雜度為什麼用O()表示,有什麼英文縮寫在裡面嗎/

這個首先要明確一點,只用到比較的排序演算法最低時間復雜度是O(nlogn),而像桶排這樣的只需要O(R)(R為桶的大小)
為了證明只用到比較的排序演算法最低時間復雜度是O(nlogn),首先要引入決策樹。
首先決策樹是一顆二叉樹,每個節點表示元素之間一組可能的排序,它予以京進行的比較相一致,比較的結果是樹的邊。
先來說明一些二叉樹的性質,令T是深度為d的二叉樹,則T最多有2^片樹葉。
具有L片樹葉的二叉樹的深度至少是logL。
所以,對n個元素排序的決策樹必然有n!片樹葉(因為n個數有n!種不同的大小關系),所以決策樹的深度至少是log(n!),即至少需要log(n!)次比較。

log(n!)=logn+log(n-1)+log(n-2)+...+log2+log1
>=logn+log(n-1)+log(n-2)+...+log(n/2)
>=(n/2)log(n/2)
>=(n/2)logn-n/2
=O(nlogn)
所以只用到比較的排序演算法最低時間復雜度是O(nlogn)。

Ⅹ 大O表示法為什麼一般取時間函數的主項

因為分析演算法復雜度的時候我們通常關注的是當n較大時的情況,此事T(n)大小主要取決於主項

熱點內容
為什麼有牛肉顏色很深 發布:2024-09-17 03:37:27 瀏覽:505
為什麼時間和距離會沖淡 發布:2024-09-17 03:22:45 瀏覽:279
為什麼微信電腦版顯示登錄失敗 發布:2024-09-17 03:00:07 瀏覽:797
摩羯座為什麼每周運勢都不好 發布:2024-09-17 02:23:23 瀏覽:616
腎不好為什麼會影響視力 發布:2024-09-17 01:42:47 瀏覽:489
爸爸我們的為什麼不一樣 發布:2024-09-17 01:33:33 瀏覽:668
絲綢為什麼相對於全世界那麼便宜 發布:2024-09-17 01:32:52 瀏覽:255
為什麼手機充電時候屏幕不靈 發布:2024-09-17 01:32:45 瀏覽:783
為什麼微信地區不能使用硬幣 發布:2024-09-17 01:24:31 瀏覽:465
迷你世界小米為什麼找不到 發布:2024-09-17 01:18:18 瀏覽:228