Rappaccini's daughter seemed to grow more beautiful with each step.
VOA: special.2009.05.23
And I'm going to show you an example in a 1 second, just to drive this home, but notice the characteristics. In the first two cases, the problem reduced by 1 at each step.
在前面两个例子里,每一部问题的规模缩小了,不管是迭代的还是递归的,这表明这个问题的复杂性可能是线性的。
So halfway is the right thing to do, because at each step, I'm guaranteed to throw away at least half the list. Right? And that's nice.
一半以上的元素,对不对?,这很棒,好,大家猜猜这个算法的增长率是多少?,为什么?太对了。
Each step told a different story.
VOA: special.2010.02.27
So, step five tells us to add 2 electrons between each atom, so we add two there.
那么,第五步告诉我们在两个原子之间放上两个电子,因此我们在这放上两个。
Count the number of primitive operations in each step.
数一数每一步中的基本操作,好的,如果我们看看这段代码。
We're checking the end test and incrementing, actually I was going to, I commented that out for a reason you'll see in a second, but I, normally I would keep this on, which would let me, at each step, see what it's doing. If I ran this, it would print out each step. Which is helping me make sure that it's incrementing the right way.
对不对?进行终结测试然后递增,实际上我要,因为某些你们,马上要明白的原因我把这里注释了,但是我通常会一直这么做,这样能让我看到每一步都做了什么,如果我运行这个程序,它会在每一步都,进行显示,这能帮助我让我确信程序是,在以正确的方式递增。
Getting rid of half at each step.
每一步把空间缩小一半。
With this, if I can assume that accessing the i'th element of a list is constant, then you can't see that the rest of that analysis looks just like the log analysis I did before, and each step, no matter which branch I'm taking, I'm cutting the problem down in half.
读取数组中的第i个元素,是个常量时间的操作的话,我也就能像以前那样得到,这个算法是对数级复杂度的分析,并且每一步不管我选择哪个区间,我都可以把问题的规模缩小一半。
应用推荐