資料結構 設計演算法實現矩陣的相加,並分析該演算法的時間複雜度

2025-03-21 13:05:06 字數 2835 閱讀 6451

1樓:史婧泥驥

按照分析慣例,假設所有單一運算的時間複雜度察悄迅均為1x=n;

while(x>=(y+1)*(y+1)).4(兩次加法、1次乘法、1次比較)y=y+1時間複雜度。

x迴圈次數。

迴圈次數是由n和y的初始值決定的,假設迴圈次數為n,y的初始值為y0,y的結束狀態為yn,有。xyn

1)*(yn

.假設y的初始值為整運李數,則yn為滿足該式的最小整數。nyny0)

.因為每次迴圈y的遞增量為1

1式簡化為。xyn

1)*(yn

1),敗此可得:yn

n^(1/2)

所以nn^(1/2)

y0採用大o表示法,僅考慮最高次項,則求n的複雜度為o(n^(1/2))

進而求得你這3行**的。

總體複雜度。

xo(n^(1/2))

由於已知的常數項及非最高次項通常會被忽略(大o精神),所以總時間複雜度為o(n^(1/2))

2樓:網友

開三個二維陣列,兩個用於雹和相加,乙個存放結果。二芹裂重迴圈將陣列對應位置元素的和置倒結果陣列的對應位置。

m*n的矩陣,時間複雜度為源首盯o(m*n)

資料結構與演算法時間複雜度的問題

3樓:網友

首先要理解幾個概念:

概念】tn :乙個演算法中的語句執行次數稱為語句頻度或時間頻度,記為t(n)。n稱為問題的規模,當n不斷變化時,時間頻度t(n)也會不斷變化。

演算法中基本操作重複執行的次數,是問題規模 n 的某個函式,用t(n)表示。

o(f(n)):稱演算法的漸進時間複雜度。

若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式記作t(n)=o(f(n))

t(n)=o(f(n)),這裡的"o"是數學符號,它的嚴格定義是 "若t(n)和f(n)是定義在正整數集合上的兩個函式,則t(n)=o(f(n))表示存在正常數c和n0 ,使得當n≥n0時都滿足0≤t(n)≤c*f(n)。"(即書本中的定義)。通俗一點就是這兩個函式當整型自變數n趨向於無窮大時,兩者的比值是乙個不等於0的常數。

分析】t(n)是某個演算法的時間耗費,它是該演算法所求解 問題規模 n的函式,而後者o(f(n))是指當問題規模趨向無窮大時,該演算法時間複雜度的數量級。當我們評價乙個演算法的時間效能時,主要標準就是演算法的漸近時間複雜度o(f(n)),因此,在演算法分析時,往往對兩者不予區分,經常是將漸近時間複雜度t(n)=o(f(n))簡稱為時間複雜度,其中的f(n)一般是演算法中頻度最大的語句頻度。

計算】tn=n+(n+1)+(n-4)(2n+1)+2n(n-1)=4n^2-2n-1

當n→∞時 , t(n),f(n^2) 兩個函式的比值是乙個常數。

所以這個關係成立:t(n)=o(n^2)

常見的時間複雜度】

按數量級遞增排列依次為:

常數階o(1)、對數階o(log2n)或o(lbn)、線性階o(n)、線性對數階o(n*log2n)、平方階o(n^2)、立方階o(n^3)、k次方階o(n^k)、指數階o(2^n)。

資料結構和演算法方面的問題。關於時間複雜度的求法。關於代入法和主定理,謝謝! 問題可能有點多,

4樓:電燈劍客

在我看來主定理並沒什麼大的用處, 不僅條件需要仔細驗證, 而且三種情況之間還有真空地帶, 還不如掌握些常用的解遞推的方法更實用。

當然, 從你的敘述來看, 你連主定理都沒有理解, 所以你的首要任務是先學會用主定理。

粗略地講, 主定理的基本思想是對。

t(n)=at(n/b)+f(n)

型的遞推, 到底是 at(n/b) 這項大還是 f(n) 這項大, 所以引出分水嶺 g(n)=n^.

對於第三題, 取 ε=ln6/ln5-1>0, 那麼 f(n)=n^1=n^, 比 g(n) 低 n^ε,然後代主定理就得到 t(n)=θ(n^)

對於第二題, f(n)=nln n, g(n)=n, 兩者間沒有多項式的鴻溝, 就不能直接用主定理。 這也就是我說主定理其實沒啥大用的道理。

一般來講掌握下面的方法就可以解決這一大類遞推, 其實主定理也是這樣推出來的。

對於第二題, 只考慮 n=2^k 的子列, 換元之後把 t(2^k) 記成 s(k), 那麼。

s(k) = 2s(k-1) +2^k * k

s(k-1) = 2s(k-1) +2^ *k-1)

.s(1) = 2s(0) +2

把左端為 s(k-j) 的式子乘上 2^j 之後全加起來就消去了所有中間項得到。

s(k) = 2^k s(0) +2^k[k+(k-1)+.1] = 2^k*o(1) +2^k*θ(k^2) = θ(2^k*k^2)

寫成 t(n) 的形式就是 t(n)=θ(n*(ln n)^2)

由於 t(n) 是單調的, 考慮上述子列足夠推出漸進量級了。

對於第三題, 同樣的方法, 令 n=5^k, s(k) = t(5^k), 那麼。

s(k) = 6s(k-1) +5^k

s(k-1) = 6s(k-2) +5^

.s(1) = 6s(0) +5

把左端為 s(k-j) 的式子乘上 6^j 之後全加起來就消去了所有中間項得到。

s(k) = 6^k s(0) +5^k + 6*5^ +6^*5]

6^k*θ(1) +5*θ(6^k) = θ(6^k)

注意後面那堆求和是等比數列求和。

換回去就得到 t(n) = θ(n^)

一般方法大致就是這樣, 當然你得會選擇合適的變數代換, 也得掌握一些基本的求和, 有時候求和不易求可以用積分來代替, 不影響漸進量級。

pkpm鋼結構設計軟體,pkpm鋼結構設計軟體

3 教程 程式 和諧補丁.zip url 門式剛架輕型房屋cad zip url 鋼結構拆圖軟體cupcad.zip url 7 拆圖軟體 url http www.400gb.位軟體 zip url 不用想了,現在的pkpm不可能有免費破解的了,大家都賣狗掙錢,有盜版狗,網上買一個兩三百塊。pkp...

建築結構設計主要任務是什麼,結構設計的工作內容是什麼

參見 一級註冊bai建築師考試du 大綱三 建築結 zhi構 3 1 對結構力學有基dao本瞭解,對常見荷載回 常見建築結構形式的受力答特點有清晰概念,能定性識別杆繫結構在不同荷載下的內力圖 變形形式及簡單計算。3 2 瞭解 混凝土結構 鋼結構 砌體結構 木結構 等結構的力學效能 使用範圍 主要構造...

學結構設計要學幾年,從零開始學結構設計可以嗎?大概要多長時間可以入行賺錢!

這具體得看你個人的領悟能力了!結構不太好學,都是力學問題,這要看你物理 空間思維怎麼樣了。結構設計一般在設計院就業的比較多,或者鋼構公司。要是做廠房設計的話,一年差不多,主要是實踐!其實廠房結構比較麻煩,有很多平臺,錯層,吊鉤,鋼平臺,特別醫藥化工類的廠房!而且都是砼和鋼結構結合的 我岩土轉的結構設...