What's the fastest way to alphabetize your bookshelf? - Chand John
3,890,933 views ・ 2016-11-28
아래 영문자막을 더블클릭하시면 영상이 재생됩니다.
번역: Evee Kim
검토: Jihyeon J. Kim
00:06
You work at the college library.
0
6911
2266
당신은 대학 도서관에서 일합니다.
00:09
You're in the middle of a quiet afternoon
1
9177
2220
조용한 오후,
00:11
when suddenly a shipment of 1,280
different books arrives.
2
11397
6614
갑자기 1,280권의 다양한
책들이 배송되었습니다.
00:18
The books have been dropped of
in one long straight line,
3
18011
3679
책들은 한줄로 길게 놓아졌지만
00:21
but they're all out of order,
4
21690
1598
정돈되어 있지는 않았고
00:23
and the automatic sorting
system is broken.
5
23288
3743
자동 분류 시스템은 망가졌습니다.
00:27
To make matters worse,
classes start tomorrow,
6
27031
2636
더 심각한 문제는
내일 수업이 곧 시작되는데
00:29
which means that
first thing in the morning,
7
29667
2338
이는 곧 내일 아침이 되자 마자
00:32
students will show up in droves
looking for these books.
8
32005
4552
학생들이 떼지어 와서
책들을 찾느다는 겁니다.
00:36
How can you get them all sorted in time?
9
36557
2936
어떻게 당신은 제 모든 책들을
제 시간 안에 정리할 수 있을까요?
00:39
One way would be to start at one end
of the line with the first pair of books.
10
39493
5286
한 방법은 한쪽 끝에 있는
책부터 시작하는 겁니다.
00:44
If the first two books are in order,
then leave them as they are.
11
44779
3847
만약 첫 두 책이 순서대로 있다면,
그대로 두면 됩니다.
00:48
Otherwise, swap them.
12
48626
2294
그게 아니라면 바꾸면 됩니다.
00:50
Then, look at the second and third books,
13
50920
2296
그리고는 두 번째와 세 번째의 책을 보고
00:53
repeat the process,
14
53216
1663
그 과정을 반복하면 됩니다.
00:54
and continue until you reach
the end of the line.
15
54879
3056
그리고 그렇게 마지막
책까지 계속하는 거죠.
00:57
At some point, you'll come across
the book that should be last,
16
57935
3250
어느 시점에서, 당신은 가장 마지막으로
가야 할 책을 만나게 될 것이고,
01:01
and keep swapping it with every
subsequent book,
17
61185
3525
그 책을 매번 다른 책들과 순서를 바꿔
01:04
moving it down the line until it
reaches the end where it belongs.
18
64710
4570
그 책이 제자리에 도착할 때까지
계속해서 뒤로 옮길 겁니다.
01:09
Then, start from the beginning
and repeat the process
19
69280
2945
그리고 다시 맨 처음으로 가
이를 반복하면서
01:12
to get the second to last book
in its proper place,
20
72225
3285
뒤에서 두 번째로 올
책을 제자리로 옮기고
01:15
and keep going until all books are sorted.
21
75510
3311
모든 책들이 정리될 때까지 계속합니다.
01:18
This approach is called Bubble Sort.
22
78821
3041
이러한 방식을 거품정렬이라고 합니다.
01:21
It's simple but slow.
23
81862
2294
간단하지만 느린 방법이죠.
01:24
You'd make 1,279 comparisons
in the first round,
24
84156
5175
당신은 첫 번째 정렬에서
1,279번을 비교할 것이고
01:29
then 1,278, and so on,
25
89331
4292
그다음에는 1,278번을,
그리고 그 후에도 이와 같이
01:33
adding up to 818,560 comparisons.
26
93623
4919
결국에는 총 818,560번의
비교를 하게 됩니다.
01:38
If each took just one second,
the process would take over nine days.
27
98542
5731
만약 비교 한번이 1초가 걸렸다면,
이 과정은 9일이 넘게 걸릴 겁니다.
01:44
A second strategy would be to start
by sorting just the first two books.
28
104273
4296
두 번째 전략은 처음 두 책을
정리하는 것으로 시작합니다.
01:48
Then, take the third book and compare it
with the book in the second spot.
29
108569
5164
그리고 세 번째 책을 가져와
두 번째 자리에 있는 책과 비교합니다.
01:53
If it belongs before the second book,
swap them,
30
113733
3440
만약 이것이 두 번째 책 앞으로
가야한다면 바꾸고
01:57
then compare it
with the book in the first spot,
31
117173
2468
첫 번째 자리에 있는 책과도 비교한 뒤
01:59
and swap again if needed.
32
119641
2041
더 앞으로 가야한다면
또 위치를 바꿉니다.
02:01
Now you've sorted the first three books.
33
121682
2198
이제 당신은 처음 3권을 정렬했습니다.
02:03
Keep adding one book at a time
to the sorted sub-line,
34
123880
3852
계속해서 앞서 정돈 된 책들에 맞춰
다음 책을 한 권 씩 추가하고
02:07
comparing and swapping the new book
with the one before it
35
127732
4077
새책을 그것 전의 책 한권과
비교하고 바꾸며
02:11
until it's correctly placed
among the books sorted so far.
36
131809
4195
지금까지 정돈 된 책들 사이에서
알맞은 위치에 자리 할 때까지 반복합니다.
02:16
This is called Insertion Sort.
37
136004
2209
이것은 삽입정렬 이라고 합니다.
02:18
Unlike Bubble Sort, it usually doesn't
require comparing every pair of books.
38
138213
4731
거품정렬과는 달리, 이는
모든 책을 일일이 비교할 필요가 없습니다.
02:22
On average, we'd expect to only need
to compare each book
39
142944
4010
평균적으로 , 우리는 각 책에 있어서
이미 정돈해 둔 책의
02:26
to half of the books that came before it.
40
146954
2460
절반만을 비교하면
된다고 예측할 수 있습니다.
02:29
In that case, the total
number of comparisons
41
149414
2709
이 경우, 전체 비교 횟수는
02:32
would be 409,280,
42
152123
3860
409,280번이 되고,
02:35
taking almost five days.
43
155983
2152
이는 거의 5일이 걸립니다.
02:38
You're still doing
way too many comparisons.
44
158135
2489
당신은 아직도 너무
많은 비교를 하고 있습니다.
02:40
Here's a better idea.
45
160624
1891
여기 더 좋은 생각이 있습니다.
02:42
First, pick a random book.
46
162515
2370
먼저, 책 한 권을 무작위로 뽑으세요.
02:44
Call it the partition and compare it
to every other book.
47
164885
4721
그것을 기준이라 부르고 이것을
다른 모든 책들과 비교해 보세요.
02:49
Then, divide the line
48
169606
1909
그리고 둘로 나누어서
02:51
by placing all the books
that come before the partition on its left
49
171515
4151
기준보다 앞에 오는 책들은
왼쪽에 정돈하고
02:55
and all the ones that come after it
on its right.
50
175666
3159
기준보다 뒤에 와야 하는 책들은
오른쪽에 정돈해봅시다.
02:58
You've just saved loads of time
51
178825
1590
당신은 방금 엄청난
시간을 절약했습니다.
03:00
by not having to compare
any of the books on the left
52
180415
3430
왜냐하면 왼쪽에 있는 어떤 책들과
03:03
to any of the ones
on the right ever again.
53
183845
3400
오른쪽에 있는 책들을
비교할 필요가 없기 때문이죠.
03:07
Now, looking only
at the books on the left,
54
187245
2420
이제, 왼쪽에 있는 책들만 보면
03:09
you can again pick a random partition book
55
189665
2877
당신은 다시 무작위로
기준이 되는 책을 고르고
03:12
and separate those books that come
before it from those that come after it.
56
192542
4724
책들을 기준 책 전과 후에
오는 것으로 나눌 수 있습니다.
03:17
You can keep creating
sub-partitions like this
57
197266
2470
이런 방식을 이용해
계속해서 기준 책을 만들고
03:19
until you have a bunch of small sub-lines,
58
199736
2648
수 많은 기준 책들이 생겼을 때
03:22
each of which you'd sort quickly using
another strategy, like Insertion Sort.
59
202384
5380
다른 전략, 삽입정렬을 이용해
빠르게 정렬할 수 있습니다.
03:27
Each round of partitioning requires
about 1,280 comparisons.
60
207764
5162
어림잡아 1,280번 정도
기준 책으로 나누게 됩니다.
03:32
If your partitions are pretty balanced,
61
212926
2540
만약 당신의 기준 책들이
균형을 잘 맞다면
03:35
dividing the books into 128 sub-lines of ten
would take about seven rounds,
62
215466
5790
책들을 10권 씩으로 총 128 구간을
만드는 데 약 7번이 걸리는데
03:41
or 8,960 seconds.
63
221256
2691
이는 약 8,960초가 걸립니다.
03:43
Sorting these sub-lines would add
about 22 seconds each.
64
223947
4789
구간 안의 책들을 정리하는 데는
아마 22초 쯤 걸릴 겁니다.
03:48
All in all, this method
known as QuickSort
65
228736
3081
전체적으로 이 방법은
퀵정렬이라고 알려져 있으며
03:51
could sort the books
in under three and a half hours.
66
231817
3066
모든 책을 3시간 반 만에
정렬할 수 있습니다.
03:54
But there's a catch.
67
234883
1114
하지만 여기엔 함정이 있습니다.
03:55
Your partitions could end up lopsided,
saving no time at all.
68
235997
3578
기준 책이 한쪽으로 쏠릴 수 있고,
이는 전혀 시간절약이 안 됩니다.
03:59
Luckily, this rarely happens.
69
239575
1902
운이 좋은 것은, 이 경우는
매우 드물게 일어납니다.
04:01
That's why QuickSort is one of the most
efficient strategies
70
241477
3433
이러한 이유로 퀵정렬은
프로그래머들이 이용하는
04:04
used by programmers today.
71
244910
2006
가장 효율적인 전략 중 하나죠.
04:06
They use it for things like sorting items
in an online store by price,
72
246916
3931
프로그래머들은 온라인 쇼핑몰에서
물건들을 가격에 맞춰 정렬하거나
04:10
or creating a list of all the gas stations
close to a given location
73
250847
4011
주어진 장소 주변의
모든 주유소들 거리에 따라
04:14
sorted by distance.
74
254858
1521
정렬하는 데 이용합니다.
04:16
In your case, you're done quick sorting
with time to spare.
75
256379
4028
당신의 경우에는, 퀵정렬로 끝내고
여유시간도 가질 수 있습니다.
04:20
Just another high-stakes day
in the library.
76
260407
2261
정신없는 도서관에서의
또 하루가 지나가네요.
New videos
Original video on YouTube.com
이 웹사이트 정보
이 사이트는 영어 학습에 유용한 YouTube 동영상을 소개합니다. 전 세계 최고의 선생님들이 가르치는 영어 수업을 보게 될 것입니다. 각 동영상 페이지에 표시되는 영어 자막을 더블 클릭하면 그곳에서 동영상이 재생됩니다. 비디오 재생에 맞춰 자막이 스크롤됩니다. 의견이나 요청이 있는 경우 이 문의 양식을 사용하여 문의하십시오.