如何分析時間複雜度 線性表

時間 2022-12-03 04:50:07

1樓:圓夢

演算法分析。

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

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))

我們一般所討論的是除正常佔用記憶體開銷外的輔助儲存單元規模。

2樓:創作者

查詢的核心操作是比較,評價時間複雜度的指標就是看需要多少次比較操作。

如果查詢長度為n的線性表需要的比較操作的次數與n成比例關係,就是線性複雜度,比如順序查詢時平均n/2次比較,就是線性複雜度,一般記作o(n)。 折半查詢的比較次數平均為log(n)/2。

請教一個線性表時間複雜度的問題

3樓:伏冬萱

在表頭插入的時間複雜度為o(1),在表尾插入的時間複雜度為o(n)

c語言中如何計算時間複雜度??以下題為例 10

4樓:俺是男銀

去看資料結構就會了,第一章就是講時間複雜度的。

資料結構的線性表時間複雜度問題,如圖第11,為什麼是o(m)

5樓:

如果將長度為任一個單連結串列連線到另一個單連結串列之後,它的演算法就是找到單連結串列的尾點,然後將尾節點的連線地址指向被連線表的頭接點即可實現相加。由於單連結串列的尾結點查詢時間複雜度是該單連結串列的長度(單連結串列需要從該節點頭結點迴圈到尾點,如果是雙連結串列或迴圈連結串列可以直接得到尾節點的)。所以我們需要的是連線在前邊單連結串列的尾節點與連線在後邊的連結串列的頭節點。

長度為n的連線到長度為m的之後,所以必須找到長度為m連結串列的尾節點與長度為n節點頭節點,找到m節點的尾結點需要的時間代價顯示是o(m),而找到長度為n的連結串列的頭節點為o(1)就可以了。確定時間代價與空間代價只說明其數量級而非精確數字,所否去掉所有低數量級與係數,保留最高數量級,所以最終的時間代價顯然是o(m).

線性表哪種儲存結構讀取資料的時間複雜度最低 5

6樓:剛剛1人

鏈式儲存結構。因為在鏈式儲存中,每個儲存點不僅包含元素本身的資訊還包含地址資訊,即指標域。通過一個節點的指標域就可以直接後繼結點的位置。

7樓:方鴻暉

順序儲存結構可以隨機存取,時間複雜度最低,常量級的。

試分析在順序儲存結構的線性表中插入一個元素的時間複雜度?

8樓:十步天下

假設插入的是第i個 0<=i<=n ;

所以移動的個數分別為n個到0個。

平局值為n/2 因為與n的一次方有關 所以是o(n)

陣列演算法複雜度分析,效率。演算法複雜度是什麼概念?

關於演算法複雜度的問題,是通過演算法的步數,和時間還有一個就是記憶體的佔用還有就是程式轉換成機器語言時的大小!時間你這個是不太好表示了!因為程式太小!但步數是可以表示的!你可以在程式中間加一個變數記錄他的執行次數!但有時會步數一樣多!這時就要看他的記憶體佔用啊!語句長短啊!綜合以上。你這個是第一個效...

時間複雜度的問題,一個時間複雜度的問題

一般來說,標準的分治法合併排序時間複雜度為o n lg n 略小於插入排序的o n n 遞迴式的時間複雜度求解方法比較多,有畫圖分析法,算式求解即類似於 t n f t n 1 的求解方法,還有就是憑經驗猜然後用數學歸納法證明等等,對於你的問題最直觀的方法就是畫圖法,這是一個二叉樹問題,最開始的序列...

資料結構“時間複雜度”的題目,資料結構 有關時間複雜度題目 求高手!求詳細解釋

麗江旅遊指南網 o表示法首先要弄清楚什麼用它來代表的上限的漸近執行時間的演算法函式g n o g n 代表了一組函式。介紹到演算法書定義 o g n 看到上面也可以忽略不明白,你只需要知道在低階項的漸近積極的作用,在確定上限和下限,可以忽略不計,因為當n大,他們相對來說並不重要,指數最高的專案上腳的...