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 瞭解 混凝土結構 鋼結構 砌體結構 木結構 等結構的力學效能 使用範圍 主要構造...
學結構設計要學幾年,從零開始學結構設計可以嗎?大概要多長時間可以入行賺錢!
這具體得看你個人的領悟能力了!結構不太好學,都是力學問題,這要看你物理 空間思維怎麼樣了。結構設計一般在設計院就業的比較多,或者鋼構公司。要是做廠房設計的話,一年差不多,主要是實踐!其實廠房結構比較麻煩,有很多平臺,錯層,吊鉤,鋼平臺,特別醫藥化工類的廠房!而且都是砼和鋼結構結合的 我岩土轉的結構設...