各位,不管考上的,还在努力的资讯前辈们,大家好。
小弟在研究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 次数,然后再回推答案。但是考试时,没有电脑可以用呀。
每次遇到这种复杂的巢状循环,就是等死,心有不甘。
忙读书,无法一一回谢。先谢谢参与讨论的人,你会更加进步的。
祝金榜题名。