Boy, there's a dumb question, because I've been telling you n log n for the last two lectures the complexity is n log n, but let's see if it really is.
孩子们,这是一个愚蠢的问题,因为前两节课的时候我就已经告诉你们了,复杂度是,但是让我们来看一下是不是真的是这样。
N log N is not nearly as good as log N. As a sanity check, what algorithm have we seen that runs in log N time?
而N,log,N和log,N并不一样,我们之前探讨过的哪个算法其时间复杂度是log,N呢?
So I have n operations log n times, n log n there we go, n log n. Took us a long time to get there, but it's a nice algorithm to have.
所以我log,n遍的n次操作,就得到了,虽然花了不少时间得到了这个结论。
If we can sort things, you know, we get this n log n behavior, and we got a n log n behavior overall. But can we actually do better in terms of searching.
如果我们可以排序,如你所知,我们有n,log,n级别的算法,并且我有一个整体的n,log,n级别的算法,但是我们在搜索方面可以做的更好吗?
But that merging process only takes N steps, N*log N so that's N times log of N. Now, it's a little tricky to reason through this perhaps the first time, let's just take a very simple example and see if we can do a little sanity check here.
但这个合并过程只需要N步,所以时间复杂度是,第一次对此进行推论可能会有点儿棘手,我们举一个简单的例子,看看我们能否做一些完整性的检查。
And if you ask the TAs in recitation tomorrow, they'll tell you that you see a lot of n log n algorithms in computer science.
如果你明天在复习课上问助教的话,他们会告诉你在计算机科学中,存在着非常多的n,log,n规模的算法。
And what does N log N feel like vis-a-vis N squared?
同N平方相比,N*log,N又是怎样的呢?
Perhaps more importantly, how to recognize a kind of algorithm based on its properties and know what class it belongs to. This is a hint. If you like, leaning towards the next quiz, that you oughta be able to say that looks like a logarithmic algorithm because it's got a particular property. That looks like an n log n algorithm because it has a particular property.
也许更重要的是,如何根据一个算法的特点将其辨别出来,并且知道它属于哪一类算法,这是一个提示,就对于接下来的测验来说,如果你喜欢你可以说它看起来像一个对数算法,因为它有一个特定的性质,那个看起来像一个n,log,n的算法,因为它有一个特定的性质。
应用推荐