[考題] 103年高考資料結構第七題

作者: fcouple (盲人騎瞎馬,夜半臨深池)   2014-09-27 09:37:41
各位,不管考上的,還在努力的資訊前輩們,大家好。
小弟在研究103年高考資料結構第七題時,碰到了一些問題,帶上來和大家討論,
也期盼能夠拋磚引玉,若有觀念不正確的地方,請前輩用力鞭打。
第一題,
sum=0
for(i=0; i<2*n; i++)
for(j=0; j<i; j++)
sum++;
可以計算出 sum 的執行次數為 (2n-1)*2n / 2
其 Big-O是 O(n^2)
但為何Θ也是Θ(n^2),這點我比較不解。
我反問自己,那Ω notation又是多少呢? 回答不出來,該不會也是 Ω(n^2) 吧?
若如此,O、Ω、Θ 差在那? 不是應該要有「上限、下限、相等」的概念在裡面嗎?
O、Ω、Θ 的定義看了又看,就是無法從定義去推出 Θ(n^2)
第二題,
sum=0
for(i=0; i<2*n; i++)
for(j=0; j<i*i; j++)
for(k=1; k<j; k++)
if(j%i == 1)
sum++;
考場上,有沒有「一定的程序、方法」去找出這種「非常複雜」的巢狀迴圈執行次數。
我在想,補習班寫解答的也沒那麼神,應該有先用電腦去跑程式,用 trace 的方式去
print 次數,然後再回推答案。但是考試時,沒有電腦可以用呀。
每次遇到這種複雜的巢狀迴圈,就是等死,心有不甘。
忙讀書,無法一一回謝。先謝謝參與討論的人,你會更加進步的。
祝金榜題名。
作者: futureq (無名再見)   2014-09-27 10:31:00
找資料結構的書來看吧,第一題洪逸的書上有。這種題目不是用trace去想程序式語言只有三種結構,循序-決策-迴圈這種是分析他的結構,然後算出對應的複雜度。

Links booklink

Contact Us: admin [ a t ] ucptt.com