iT邦幫忙

0

資料結構內JAVA語法的問題

今天上課結果老師說有這個作業..
回家看才發現完全不懂意思...
沒有宣告就直接有語法...
且是課本的題目這樣出 所以完全不知道怎麼回答...
請問有人可以幫忙嗎?
https://ithelp.ithome.com.tw/upload/images/20201028/20131917ppFCiMilmG.jpg

2 個回答

0
lyuki
iT邦新手 5 級 ‧ 2020-10-29 02:22:30

首先,這裡的程式碼比較像是 Pseudocode , 所以不會宣告任何變數。

再來解決這三個題目,時間複雜度如果不太會算的話,可以用迴圈最裡面的片段執行次數來推應該要填什麼時間複雜度。不過這種方法比較偷吃步,有少部分題目還是會出錯,當參考就好。

以A這題來說:
假設 n 是 4。 i 等於 0 ,s++ 不會執行; i 等於 1 ,s++ 執行1次; i 等於 2 ,s++ 執行2次; i 等於 3 ,s++ 執行3次;
可以看出來次數大概是 n^2/2 次,但時間複雜度不會有常數項。所以會變成 O(n^2)

其他兩題就練習看看吧 d(`・∀・)b

sky800219 iT邦新手 5 級 ‧ 2020-11-03 19:58:16 檢舉

嗚嗚 還是無法理解!!

1
sx0800
iT邦新手 4 級 ‧ 2020-10-29 06:13:56

非本科系的疑問:
該跑就是要跑,效能不佳時就思考其他方式,
算時間複雜度的意義在?

看更多先前的回應...收起先前的回應...

理解為什麼效能不佳,學術方面。

恩~

通靈亡 iT邦研究生 1 級 ‧ 2020-10-29 10:19:12 檢舉

學術本身很重視科學依據,你必須有一個明確的論述、數據來量化,這段演算法的效能是好是壞。這就是為什麼學術做演算法的,都要算時間複雜度。做學術研究總不能用「感覺」來判定演算法的好壞。

在工作上,時間複雜度我們是當作是一個Sense,大概從那段程式碼會執行多少次,底層做多少處理,判斷這段程式碼的效能

我覺得很實用呀, 在後面學習演算法跟資料結構時就會告訴你在不同情況下的複雜度是多少, 要看得懂這些才幫助你在不同情況下怎麼處理跟計算, 而不是在那邊瞎測試哪個有效率。但平常實際在寫code的時候大部份會像是通靈王講的Sense的感覺, 不太會真的下去算複雜度有多少, 不過我想很多人寫code沒在管有沒效率..程式會跑就好, 出事再說XD

sx0800 iT邦新手 4 級 ‧ 2020-10-29 16:25:13 檢舉

寫久了通靈王的"在工作上,時間複雜度我們是當作是一個Sense" 比較實用, 否則每段都拿來分析研究效能老闆可能會拿刀出來逼人離職。

krarm iT邦好手 1 級 ‧ 2020-10-29 17:27:07 檢舉

算時間複雜度的意義在於
程式還沒有寫就知道不可行
你還要先寫出來才知道
不會算的Programmer在寫計算量大的程式時
很容易要造成災難 不然就是要狂加硬體
會算的人的幫公司省下一些錢
你可以去解codejam的題目看看
不會分析時間複雜度時 你解BIG DATA會怎樣

sky800219 iT邦新手 5 級 ‧ 2020-11-03 19:58:25 檢舉

嗚嗚 還是無法理解!!

我要發表回答

立即登入回答