And this is in contrast to Selection Sort where you're fishing again and again for the then smallest element.
这与选择排序是相反的,在选择排序中你需要一次又一次地,找出最小的元素。
At the end of the first round, I've got the smallest element at the front. At the end of the second round, I've got the smallest two elements at the front, in fact I got all of them sorted out. And it actually runs through the loop multiple times, making sure that it's in the right form.
看看发生了什么,在第一轮结束后,我把最小的元素移到了前面,第二轮结束后,我把最小的,两个元素移到了前面,实际上,所有的元素都排好序了,实际上,这个算法运行了几次循环,确认下这是正确的形式。
I just go down the list selecting the smallest person at a time and then I repeat, repeat, repeat but when we actually did out the math or kind of reason through it, the running time, the asymptotic running time of bub-- of Selection Sort was also what?
只需要遍历列表,每次找出最小的元素,然后重复上述步骤,但从数学角度看,选择排序的时间复杂度,又是多少呢?
The element is carbon. That is the smallest unit.
那个元素是碳,是最小的单位。
What's this thing doing? It's walking along the list looking for the smallest thing in the back end of the list, keeping track of where it came from and swapping it with that spot in the list. All right?
这是在做什么?是在遍历列表,找列表后端最小的元素,跟踪它从哪里来的,然后同当前点的元素交换,明白了么?
Smallest four elements at the front, you get the idea.
最小的四个元素到前面了,你懂的。
It's as though I've walked across the stage like this realized, damn, it was the guy over here or rather I found the smallest element here who beat out number 2 over here so I can now put number 1 into place and recall that it didn't matte if I punted whoever was standing here 'cause they were given to me randomly anyway.
这就像是我这样走过讲台,然后才发现要找的人在那儿,或者说发现了最小的元素,那么就可以将1号放在正确的位置,而在这儿的是谁并不重要,因为他们本身就是,随机的。
Smallest five elements at the front.
最小的五个元素到前面了。
Smallest two elements at the front.
最小的两个元素到前面了。
Smallest three elements at the front.
最小的三个元素到前面了。
Smallest element at the front.
好的,最小的元素到前面了。
I'll let you just grok it but you can see it's basically doing what I did over there. Setting up two indices for the two sub-list,it's just walking down, finding the smallest element, putting it into a new list. When it gets to the end of one of the lists, it skips to the next part, and only one of these two pieces will get called because only one of them is going to have things leftovers.
你们可以大体的浏览一下,但是它们基本就是我在那里所做的事情,为两个子列表设置了两个指针,指针顺着列表走下去,找到最小的元素,把它放入到一个新的列表中去,当它走到一个列表的尾部时,它会跳到下部分去,两部分中只有一个会被执行,因为只有一个会有元素剩余。
I was just finding very tunnel vision-like, the smallest elements at that moment in time which means I don't know anything about the other elements other than they are not the smallest and so no matter what with Selection Sort I had to repeat this again and again and again and if you do out the math it's roughly N squared steps in the worst case as well.
我只有一个狭窄的视野,只知道某时刻的最小元素,就意味着我并不知道其他元素的任何情况,只知道它们不是最小的,所以不管怎样,在选择排序中,我就得一遍一遍地重复选择过程,在最坏情况下,大概需要N的平方次比较。
应用推荐