Re: [考题] 103年高考资料结构第七题

楼主: ARCHERDEVIL (开弓)   2014-09-27 10:08:13
※ 引述《fcouple (皇家典藏20年礼炮)》之铭言:
: 各位,不管考上的,还在努力的资讯前辈们,大家好。
: 小弟在研究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),这点我比较不解。
big oh 是说最坏状况他要跑几次
big omaga 是说最好状况下他可以只跑几次就完成
big theta 是说当你有一个f(v)的时候
如果f(v)的big oh 、big omaga可以导出一样的值
则big theta存在
这一题big oh 大概不用解释
big omaga的部分,如果你可以在x1跟c都存在的状况下找到
f(x)>=c*g(x)的成立状况,那就成立
注意,是不管大于或等于都可以。
公式套用的部分你自己算就好,应该不是太难
你会发现它的确存在big o = big omaga的状况
: 我反问自己,那Ω 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 次数,然后再回推答案。但是考试时,没有电脑可以用呀。
: 每次遇到这种复杂的巢状循环,就是等死,心有不甘。
: 忙读书,无法一一回谢。先谢谢参与讨论的人,你会更加进步的。
: 祝金榜题名。
第一圈最多是2n
第二圈是n*n
第三圈是n
全部乘起来答案就出来了
第一圈我应该不用解释
第二圈从零开始,然后每次都到 i*i
你把 第二圈的i 当成 n,那就是每次都从0 到 n 平方减一
第三圈我应该不用解释了吧?
这不需要用电脑跑一次
基本观念建立好就好

Links booklink

Contact Us: admin [ a t ] ucptt.com